Syntax
SELECT {Tabelle1|Alias1}.Feld1 [,...] , {Tabelle2|Alias2}.Feld2 [,...]
FROM Tabelle1 [Alias1], Tabelle2 [Alias2]
vor SQL92 (keine Beschreibung von Tabellen-Verknüpfungen)
FROM Tabelle1 [Alias1] CROSS JOIN Tabelle2 [Alias2]
ab SQL92 (explizite Beschreibung von Tabellen-Verknüpfungen)
Beschreibung
Der Cross Join bzw. kartesische Produkt ist "gar keine" Tabellenverküpfung, welche bewirkt, dass alle möglichen Kombinationen aller Datensätze beider Tabellen erzeugt werden.
Beispiel:
-- before SQL 92
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a, tkunden b
ORDER BY vnum;
-- SQL 92
SELECT a.vnum, a.vname, b.knum, b.kname
FROM tverkauf a CROSS JOIN tkunden b
ORDER BY vnum;
Ergebnis:
vnum vname knum kname
1 Mueller 1 Lehmann
1 Mueller 2 Schmidt
1 Mueller 3 Schumacher
1 Mueller 4 Schroeder
1 Mueller 5 Stoiber
1 Mueller 6 Lohmann
1 Mueller 7 Krupp
1 Mueller 8 Stradivari
1 Mueller 9 Schumacher
1 Mueller 10 Testcustomer
2 Meyer 1 Lehmann
2 Meyer 2 Schmidt
2 Meyer 3 Schumacher
2 Meyer 4 Schroeder
2 Meyer 5 Stoiber
2 Meyer 6 Lohmann
2 Meyer 7 Krupp
2 Meyer 8 Stradivari
2 Meyer 9 Schumacher
2 Meyer 10 Testcustomer
3 Schulz 1 Lehmann
3 Schulz 2 Schmidt
3 Schulz 3 Schumacher
3 Schulz 4 Schroeder
3 Schulz 5 Stoiber
3 Schulz 6 Lohmann
3 Schulz 7 Krupp
3 Schulz 8 Stradivari
3 Schulz 9 Schumacher
3 Schulz 10 Testcustomer
4 Burgmueller 1 Lehmann
4 Burgmueller 2 Schmidt
4 Burgmueller 3 Schumacher
4 Burgmueller 4 Schroeder
4 Burgmueller 5 Stoiber
4 Burgmueller 6 Lohmann
4 Burgmueller 7 Krupp
4 Burgmueller 8 Stradivari
4 Burgmueller 9 Schumacher
4 Burgmueller 10 Testcustomer