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

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

Beim SQL RIGHT JOIN müssen die Zeilen aus der rechten Tabelle nicht mit der linken Tabelle übereinstimmen. Es wird die rechte Tabelle plus ein INNER JOIN aus beiden Tabellen wiedergegeben. Da die rechte Tabelle Zeilen enthält, die nicht mit der linken Tabelle übereinstimmen, kommt es in den gejointen Spalten der linken Tabelle zu NULL Werten. In einigen Datenbanken wird der RIGHT JOIN als RIGHT OUTER JOIN bezeichnet.

SQL RIGHT 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 (Tabelle A)

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 (Tabelle B)

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 Bestellungen_April 
RIGHT JOIN Kunden 
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 Name, Geschlecht und Geburtsdatum wurden über den RIGHT 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 RIGHT 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!