CROSS JOIN je operátor SQL, který provádí úplný kartézský součin mezi dvěma tabulkami. Jelikož se jedná o kartézský produkt, neumožňuje během operace žádné podmínky , jeho výsledek můžete omezit pouze pomocí nějaké operace filtrování (podmínka WHERE).
Operátory JOIN (INNER a OUTER JOIN, tedy) jsou prostě kartézský součin spolu s filtrovacím operátorem vyjádřeným v ON části operátoru (a ve skutečnosti v původní syntaxi SQL nebyl žádný operátor JOIN, prostě „čárka“ zápis pro označení produktu s podmínkou spojení vyjádřenou vždy v části WHERE).
Příklady:
"starý" zápis:
SELECT ...
FROM table1 t1, table2 t2
WHERE t1.attribute = t2.attribute
ekvivalentní k "modernímu" zápisu:
SELECT ...
FROM table1 t1 INNER JOIN table2 t2 ON t1.attribute = t2.attribute
zatímco pro kartézský součin:
"starý" zápis:
SELECT ...
FROM table1 t1, table2 t2
ekvivalentní k "modernímu" zápisu:
SELECT ...
FROM table1 t1 CROSS JOIN table2 t2
Jinými slovy, CROSS JOIN, který vyžaduje podmínku, je ve skutečnosti nějaký druh INNER JOIN.