Left Join (SQL): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: Der Left Join ist, ähnlich wie der Right Join ein besonderer Join. Hier werden wie beim Cross Join ein [...)
 
K
Zeile 3: Zeile 3:
 
===Syntax===
 
===Syntax===
 
Ein Left Join wird mit dem [[Schlüsselwort]] '''LEFT JOIN''' erzeugt, optinal kann noch '''OUTER''' hinzugefügt werden.
 
Ein Left Join wird mit dem [[Schlüsselwort]] '''LEFT JOIN''' erzeugt, optinal kann noch '''OUTER''' hinzugefügt werden.
<code=sql>
+
<syntaxhighlight lang="sql">
 
SELECT * FROM tabelle1 t1 LEFT JOIN tabelle2 t2 WHERE t1.spalte = t2.spalte;
 
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;
 
SELECT * FROM tabelle1 t1 LEFT OUTER JOIN tabelle2 t2 WHERE t1.spalte = t2.spalte;
</code=sql>
+
</syntaxhighlight>
  
 
===Beispiel===
 
===Beispiel===
Zeile 46: Zeile 46:
  
 
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.
 
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.
<code=sql>
+
<syntaxhighlight lang="sql">
 
SELECT * FROM ortstabelle o LEFT JOIN personentabelle p WHERE o.Ort_ID = p.Ort_ID;
 
SELECT * FROM ortstabelle o LEFT JOIN personentabelle p WHERE o.Ort_ID = p.Ort_ID;
</code=sql>
+
</syntaxhighlight>
 
{| {{Prettytable}}
 
{| {{Prettytable}}
 
! Ort_ID
 
! Ort_ID

Version vom 2. April 2018, 14:42 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 Hamburg NULL NULL NULL

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