CROSS JOIN er SQL-operatøren til at udføre et fuldt kartesisk produkt mellem to tabeller. Da det er et kartesisk produkt, tillader det ingen tilstand under operationen , kan du kun begrænse resultatet med en eller anden filtreringsoperation (WHERE-betingelsen).
JOIN (INNER og OUTER JOIN, det vil sige) operatorer, er simpelthen kartesiske produkter sammen med filtreringsoperatoren udtrykt i ON-delen af operatoren (og faktisk i den oprindelige SQL-syntaks var der ingen JOIN-operator, blot "kommaet" notation for at angive produktet med sammenføjningsbetingelsen, der altid er udtrykt i WHERE-delen).
Eksempler:
"gammel" notation:
SELECT ...
FROM table1 t1, table2 t2
WHERE t1.attribute = t2.attribute
svarende til den "moderne" notation:
SELECT ...
FROM table1 t1 INNER JOIN table2 t2 ON t1.attribute = t2.attribute
mens, for det kartesiske produkt:
"gammel" notation:
SELECT ...
FROM table1 t1, table2 t2
svarende til den "moderne" notation:
SELECT ...
FROM table1 t1 CROSS JOIN table2 t2
Med andre ord er en CROSS JOIN, der kræver en betingelse, faktisk en slags INNER JOIN.