Fragen zu SQL-Joins
bluenetow
- datenbank
Guten Tag,
mir wurde schon einmal perfekt geholfen, was das Thema JOINs angeht - soweit großen Dank nochmal - Ich habe dies bezüglich jedoch noch kleinere Fragen:
Der Self-Join dient dazu, die slebe Tabelle miteinander zu verbinden. Meine Frage, wozu brauch man so etwas?
Das selbe trifft auch auf den LEFT und RIGHT JOIN zu (Also die Frage), wozu brauch man diese Anweisungen alle?
Wie hab ich das alles mit der Ergebnismenge zu verstehen?
Und die generelle, letztere Frage, wozu brauch man den JOIN überhaupt eigentlich?
Vielen Dank im voraus!
Hallo,
eine ganz brauchbare Einführung gibt es zum Beispiel hier:
http://www.sql-und-xml.de/sql-tutorial/tabellen-verknuepfen-mit-join.html
(Google-Suche nach "sql join tutorial", ziemlich weit vorn in den Ergebnissen)
Gruß
Sascha
echo $begrüßung;
Der Self-Join dient dazu, die slebe Tabelle miteinander zu verbinden. Meine Frage, wozu brauch man so etwas?
Zum Beispiel dann, wenn du Beziehungen zwischen den Datensätzen der Tabelle hast. Ein einfaches Beispiel: Ein Katalog enthält alle bestellbaran Artikel. Das können die eigentlich vertriebenen Dinge sein aber auch Ersatzteile zu diesen Dingen, denn auch die Ersatzteile haben alle Eigenschaften eines normalen Katalogartikels: z.B. Artikelnummer, Beschreibung, Preis. Die Ersatzteile können im einfachsten Fall über ein Feld Ersatzteil-Artikelnummer in der Artikel-Tabelle den Dingen zugeordnet sein. Wenn du nun also Ding und Ersatzteil in einem Datensatz abgerufen haben möchtest, musst du die Artikeltabelle zweimal ansprechen, sie also über die Ersatzteil-Artikelnummer mit sich selbst verknüpfen.
Oder auch: Gib mir alle Personen inklusive der Namen der Partner. Man stellt die Beziehung zu einem Partner nicht dadurch dar, dass man in der Personentabelle ein Feld mit dem Namen des Partners ablegt, sondern einen Verweis auf seine Datensatz-ID, weil sonst die Namen redundant in der Tabelle stehen.
Der Rest deiner Fragen wird in den beiden Datenbank-SELFHTML-Aktuell-Artikeln zu den Joins behandelt.
echo "$verabschiedung $name";