Left Join (SQL): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
 
Zeile 75: Zeile 75:
 
|-
 
|-
 
| 3
 
| 3
| Hamburg
+
| München
 
| NULL
 
| NULL
 
| NULL
 
| NULL

Aktuelle Version vom 18. Juni 2018, 09:07 Uhr

Der Left Join ist, ähnlich wie der Right Join ein besonderer Join. Hier werden wie beim Cross Join ein Kreuzprodukt über die beiden Mengen, welches über die WHERE-Bedingung eingegrenzt werden muss. Jedoch werden hierbei allen Elementen ( Zeilen) der zweiten Tabelle, die keine entsprechenden Elemente aus der ersten Tabelle entsprechen, werden mit NULL aufgefüllt.

Syntax

Ein Left Join wird mit dem Schlüsselwort LEFT JOIN erzeugt, optinal kann noch OUTER hinzugefügt werden.

SELECT * FROM tabelle1 t1 LEFT JOIN tabelle2 t2 WHERE t1.spalte = t2.spalte;
SELECT * FROM tabelle1 t1 LEFT OUTER JOIN tabelle2 t2 WHERE t1.spalte = t2.spalte;

Beispiel

Tabelle 1 - Personentabelle:

Person_ID Name Ort_ID
1 person1 1
2 person2 1
3 person3 2

Tabelle 2 - Ortstabelle:

Ort_ID Ortsname
1 Berlin
2 Hamburg
3 München

Bei Bildung des Joins über die beiden Tabellen, werden die Spalten 'Ort_ID verbunden und somit ergibt sich folgendes Bild. Gäbe es noch mehr gleichnamige Spalten würden diese auch verwendet werden.

SELECT * FROM ortstabelle o LEFT JOIN personentabelle p WHERE o.Ort_ID = p.Ort_ID;
Ort_ID Ortsname Person_ID Name Ort_ID
1 Berlin 1 person1 1
1 Berlin 2 person2 1
2 Hamburg 3 person3 2
3 München NULL NULL NULL

Da es für München keine Person gibt wird dieser Eintrag mit NULL ergänzt.