Der SQL CROSS JOIN verbindet jede einzelne Zeile aus der linken Tabelle mit allen Zeilen aus der rechten Tabelle.
SELECT Spalte
FROM TabelleA
CROSS JOIN TabelleB;
In der Mengenlehre spricht man auch vom kartesischen Produkt oder Kreuzprodukt. Sofern keine WHERE Bedingung gesetzt ist, entstehen beim CROSS JOIN die Anzahl der Zeilen aus der linken Tabelle multipliziert mit der Anzahl der Zeilen aus der rechten. Bei der Abfrage werden alle Spalten beider Tabellen in einer Tabelle ausgegeben.
SQL CROSS JOIN - Beispiel
Ein Modehändler hat seine T-Shirts kategorisiert nach den Größen S – XXL und nach den Farben Schwarz, Weiß und Grün. Er möchte eine eigene Tabelle für jede mögliche Größen- und Farbkombination erstellen:
SELECT f.Preis, f.Farbe, g.Groesse
FROM Größen AS g
CROSS JOIN Farben AS f;
Es kann vorkommen kann, dass in beiden Tabellen eine identische Spalte existiert. Deshalb ist es sinnvoll, Aliases zu verwenden, um Spalten spezifisch und übersichtlich auszuwählen.