Syntax
FROM Tabelle1 [Alias1], OUTER Tabelle2 [Alias2]
WHERE a.Feld1 = b.Feld2
Informix, vor SQL92 (implizite Beschreibung von Tabellen-Verknüpfungen)
WHERE (a.Feld1 = b.Feld2(+))
Oracle, vor SQL92 (implizite Beschreibung von Tabellen-Verknüpfungen)
FROM Tabelle1 [Alias1] LEFT JOIN Tabelle2 [Alias2] ON {Tabelle1|Alias1}.vnum = {Tabelle2|Alias2}.vnum
ab SQL92 (explizite Beschreibung von Tabellen-Verknüpfungen)
Beschreibung
Der Left Join bzw. Left Outer Join ist die Tabellenverküpfung, welche zusätzlich zu den Datensätzen aus zwei Tabellen, bei denen ein Feld (das jeweilige) dieselben Werte enthält auch alle Datensätze aus der ersten (linken) Tabelle mit in das Ergebnis einfügt.
Beispiel:
-- Informix
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a, OUTER tkunden b
WHERE a.vnum = b.vnum
ORDER BY vnum;
-- Oracle
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a, tkunden b
WHERE (a.vnum = b.vnum(+))
ORDER BY vnum;
-- SQL 92
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a LEFT JOIN tkunden b ON a.vnum=b.vnum
ORDER BY vnum;
Ergebnis:
vnum vname knum kname
1 Mueller 1 Lehmann
1 Mueller 2 Schmidt
1 Mueller 3 Schumacher
2 Meyer 4 Schroeder
2 Meyer 5 Stoiber
3 Schulz 6 Lohmann
3 Schulz 7 Krupp
3 Schulz 8 Stradivari
3 Schulz 9 Schumacher
4 Burgmueller
In der Ergebnismenge taucht zusätzlich der Verkäufer Nummer 4 auf, welcher noch keine Kunden hat.
Bookmark/Search this post with