Der SQL LEFT JOIN verbindet zwei Tabellen miteinander. Alle Zeilen aus der linken Tabelle (TabelleA) werden ausgegeben und dazu übereinstimmende Werte aus der rechten Tabelle (TabelleB) werden angefügt.

SELECT Spalte 
FROM TabelleA 
LEFT JOIN TabelleB 
ON TabelleA.Spalte = TabelleB.Spalte; 
SQL LEFT JOIN Venn Diagramm

Die Zeilen aus der linken Tabelle müssen also nicht zwangsweise mit der rechten Tabelle übereinstimmen. Es wird die linke Tabelle plus ein INNER JOIN aus beiden Tabellen wiedergegeben. Da in der linken Tabelle Zeilen enthalten sind, die nicht mit der rechten Tabelle übereinstimmen, kommt es in den gejointen Spalten der rechten Tabelle zu NULL Werten. In einigen Datenbanken wird der LEFT JOIN als LEFT OUTER JOIN bezeichnet.

SQL Left Join

SQL LEFT JOIN - Beispiel

Ein Online-Händler möchte einen Überblick über die Produktrezensionen seiner Kunden bekommen. Dafür möchte er seine Kunden-Tabelle mit der Bestellungen_April-Tabelle verknüpfen, um einen direkten Vergleich zu haben. In beiden Tabellen überschneidet sich die Kunden_ID.

Kunden

Kunden_ID

Name

Geburtsdatum

Geschlecht

1

Max Mustermann

01.01.1990

M

2

Erika Musterfrau

31.12.1989

W

3

Frauke Herrmann

31.06.2000

D

Bestellungen_April

Bestell_ID

Bestelldatum

Rezensionstext

Kunden_ID

1

20.04.2020

Ein wunderbares …

1

2

22.04.2020

(null)

1

3

25.04.2020

Ich bin unzufrieden …

3

SELECT Kunden.Name, Kunden.Geschlecht, 
       Bestellungen_April.Bestelldatum, Bestellungen_April.Rezensionstext
FROM Kunden 
LEFT JOIN Bestellungen_April 
ON Kunden.Kunden_ID = Bestellungen_April.Kunden_ID; 

Die Tabellennamen werden vor die Spalten geschrieben, damit eine konkrete Zuordnung stattfinden kann, falls Spalten aus verschiedenen Tabellen denselben Namen haben.  

Name

Geschlecht

Bestelldatum

Rezensionstext

Max Mustermann

M

20.04.2020

Ein wunderbares …

Max Mustermann

M

22.04.2020

(null)

Erika Musterfrau

W

(null)

(null)

Frauke Herrmann

D

25.04.2020

Ich bin unzufrieden …

Die Spalten Bestelldatum und Rezensionstext wurden über den LEFT JOIN Befehl angefügt. Auffällig ist, dass es zwei Zeilen mit Max Mustermann gibt. Das liegt daran, dass die Spalte Kunden_ID, über die der LEFT JOIN durchgeführt wurde, in der Bestellungen-Tabelle zwei Mal existiert. Daher gibt es zwei Verweise aus den Bestellungen auf den Kunden Max Mustermann. Da nicht zwei Werte in ein Feld eingefügt werden können, wird seine Zeile dupliziert und mit den zweiten Werten aus der Bestellungen-Tabelle bereichert. 

Zu Erika Musterfrau gibt es keine Informationen in der Bestellungen-Tabelle, da ihre Kunden_ID „2“ nicht vorhanden ist. Damit kann keine Zeile zu Erika Musterfrau zugeordnet werden, weshalb bei ihr in den neuen Spalten NULL Werte enthalten sind. Die Kundin hat also keine Bestellung im April getätigt. 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!