SQL > SQL Befehle > 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

 Store_Name   Sales   Txn_Date 
 Los Angeles  1500   05.Jan.1999 
 San Diego  250   07.Jan.1999 
 Los Angeles  300   08.Jan.1999 
 Boston  700   08.Jan.1999 

Tabelle Geography

 Region_Name   Store_Name 
 East   Boston 
 East   New York 
 West   Los Angeles 
 West   San Diego 

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:

REGION  SALES
East  700
West  2050

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. 

SQL Outer Join >>

Diese Seite wurde zuletzt am 26.06.2022 aktualisiert




Copyright © 2024   1keydata.com   Alle Rechte vorbehalten