SQL Join | |
Sehen wir uns nun den Begriff des Verbunds, des Joins, näher an. Eine korrekte Join-Verknüpfung in SQL setzt viele der bisher vorgestellten Elemente voraus. Nehmen wir an, es liegen die folgenden zwei Tabellen vor, Tabelle Store_Information
Tabelle Geography
und wir möchten den Umsatz pro Region ermitteln. Die Tabelle Geography enthält Informationen zu Regionen und Warenhäusern und die Tabelle Store_Information Umsatzdaten für die einzelnen Warenhäuser. Um nun die Umsatzdaten für die jeweiligen Regionen anzeigen zu lassen, müssen wir die Daten der beiden Tabellen kombinieren. Wenn wir uns die beiden Tabellen genauer ansehen, stellen wir fest, dass sie über das gemeinsame Feld "Warenhaus_Name" verknüpft sind. Hier zunächst die SQL-Anweisung, die Verwendung der einzelnen Segmente wird dann anschließend erläutert: SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name GROUP BY A1.Region_Name; Ergebnis:
Die ersten beiden Zeilen weisen SQL an, zwei Felder auszuwählen. Das erste ist das Feld "Region_Name" aus der Tabelle Geography (mit dem Alias REGION) und das zweite die Summe des Felds "Umsatz" aus der Tabelle Store_Information (mit dem Alias UMSATZ). Beachten Sie die Verwendung der Tabellenaliasse: Geography hat den Alias A1 und Store_Information den Alias A2. Ohne die Aliasnamen sähe die erste Zeile wie folgt aus: SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES
und wäre somit deutlich unübersichtlicher. Im Wesentlichen machen Tabellenaliasse die gesamte SQL-Anweisung verständlicher, insbesondere wenn mehrere Tabellen miteinbezogen sind. Sehen wir uns nun die dritte Zeile mit der WHERE-Anweisung genauer an. Hier wird die Verbundbedingung festgelegt. Im vorliegenden Fall möchten wir sicherstellen, dass der Inhalt im Feld "Warenhaus_Name" in der Tabelle demjenigen in der Tabelle Store_Information entspricht. Dies erreichen wir, indem wir die Inhalte gleichsetzen. Diese WHERE-Anweisung ist entscheidend für die richtige Ausgabe. Ohne korrekte WHERE-Anweisung ergibt sich ein kartesischer Verbund. Damit würde die Abfrage alle möglichen Kombinationen der zwei Tabellen (oder wie groß auch immer die Anzahl der Tabellen in der FROM-Anweisung ist) ausgeben. Im vorliegenden Fall wäre das Ergebnis eines kartesischen Verbunds eine Gesamtzahl von 4 x 4 = 16 Zeilen.
Copyright © 2024 1keydata.com Alle Rechte vorbehalten |