Syntax
FROM Tabelle1 [Alias1] FULL JOIN Tabelle2 [Alias2] ON {Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2
ab SQL92 (explizite Beschreibung von Tabellen-Verknüpfungen)
SELECT Feldliste FROM Tabelle1 [Alias1] LEFT JOIN Tabelle2 [Alias2] ON {Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2 UNION
SELECT Feldliste FROM Tabelle1 [Alias1] RIGHT JOIN Tabelle2 [Alias2] ON {Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2
ab SQL92 (falls die direkte deklaration eines Union Joins nicht unterstützt wird)
SELECT Feldliste FROM Tabelle1 [Alias1], OUTER Tabelle2 [Alias2]
WHERE {Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2 UNION
SELECT Feldliste FROM OUTER Tabelle1 [Alias1], Tabelle2 [Alias2]
WHERE {Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2
Informix vor SQL92 (implizite Join-Deklaration)
SELECT Feldliste FROM Tabelle1 [Alias1], Tabelle2 [Alias2]
WHERE ({Tabelle1|Alias1}.Feld1 = {Tabelle2|Alias2}.Feld2(+)) UNION
SELECT Feldliste FROM Tabelle1 [Alias1], Tabelle2 [Alias2]
WHERE ({Tabelle1|Alias1}.Feld1(+) = {Tabelle2|Alias2}.Feld2)
Oracle vor SQL92 (implizite Join-Deklaration)
Beschreibung
Der Full Join bzw. Full 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) und der zweiten (rechten) Tabelle mit in das Ergebnis einfügt, welche keine Entsprechung in der jeweils anderen tabelle haben.
Wichtig ist, dass wenn ein Full-Join nicht direkt durch die datenbank unterstützt wird (Syntax 1), alle verknüpfbaren Datensätze durch die zwei SELECT-Statements zwei mal ausgewählt werden und erst im zweiten Schritt durch die UNION-Klausel ohne ALL-Zusatz bereinigt werden.
Beispiel:
-- SQL 92
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a FULL JOIN tkunden b ON a.vnum = b.vnum
ORDER BY vnum;
Ergebnis:
vnum vname knum kname
10 Testcustomer
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
Auflistung aller Verkäufer und aller dazu passenden Kunden, ohne irgendwelche Datensätze aus einer der beiden Tabellen auszulassen.
Bookmark/Search this post with