CROSS JOIN is de SQL-operator om een volledig cartesiaans product tussen twee tabellen uit te voeren. Omdat het een cartesiaans product is, staat het geen enkele voorwaarde toe tijdens de operatie , kunt u het resultaat alleen beperken met een filterbewerking (de WHERE-voorwaarde).
JOIN (INNER en OUTER JOIN, dat wil zeggen) operators zijn gewoon een cartesiaans product samen met de filteroperator uitgedrukt in het ON-gedeelte van de operator (en in feite was er in de oorspronkelijke syntaxis van SQL geen JOIN-operator, gewoon de "komma" notatie om het product aan te duiden met de join-voorwaarde die altijd wordt uitgedrukt in het WHERE-gedeelte).
Voorbeelden:
"oude" notatie:
SELECT ...
FROM table1 t1, table2 t2
WHERE t1.attribute = t2.attribute
equivalent aan de "moderne" notatie:
SELECT ...
FROM table1 t1 INNER JOIN table2 t2 ON t1.attribute = t2.attribute
terwijl, voor het cartesiaanse product:
"oude" notatie:
SELECT ...
FROM table1 t1, table2 t2
equivalent aan de "moderne" notatie:
SELECT ...
FROM table1 t1 CROSS JOIN table2 t2
Met andere woorden, een CROSS JOIN waarvoor een voorwaarde is vereist, is eigenlijk een soort INNER JOIN.