CROSS JOIN ist der SQL-Operator, um ein vollständiges kartesisches Produkt zwischen zwei Tabellen auszuführen. Da es sich um ein kartesisches Produkt handelt, lässt es keine Bedingung während des Betriebs zu , können Sie das Ergebnis nur mit einer Filteroperation (der WHERE-Bedingung) einschränken.
JOIN-Operatoren (d. h. INNER und OUTER JOIN) sind einfach ein kartesisches Produkt zusammen mit dem Filteroperator, der im ON-Teil des Operators ausgedrückt wird (und tatsächlich gab es in der ursprünglichen Syntax von SQL keinen JOIN-Operator, nur das „Komma“ Notation, um das Produkt mit der Join-Bedingung zu bezeichnen, die immer im WHERE-Teil ausgedrückt wird).
Beispiele:
"alte" Schreibweise:
SELECT ...
FROM table1 t1, table2 t2
WHERE t1.attribute = t2.attribute
Äquivalent zur "modernen" Notation:
SELECT ...
FROM table1 t1 INNER JOIN table2 t2 ON t1.attribute = t2.attribute
während für das kartesische Produkt:
"alte" Schreibweise:
SELECT ...
FROM table1 t1, table2 t2
Äquivalent zur "modernen" Notation:
SELECT ...
FROM table1 t1 CROSS JOIN table2 t2
Mit anderen Worten, ein CROSS JOIN, der eine Bedingung erfordert, ist eigentlich eine Art INNER JOIN.