når du bruger ANSI SQL-92
syntaks, ON
søgeordet er en del af sammenføjningen undtagen cross join
da du ikke har en betingelse for forholdet.
eks.
INDRE JOIN
SELECT *
FROM tableA INNER JOIN tableB
on tableA.ID = tableB.ID
KRYDSJOIN
SELECT *
FROM tableA CROSS JOIN tableB
ON
skal følges efter den samlede tabel (sammenføjninger som INNER og OUTER ), så du ikke har syntaksfejl. men hvis du bruger ANSI SQL-89
syntaks, ON
nøgleord er udeladt, men du skal angive forholdet på where clause
eks.
INDRE JOIN
SELECT *
FROM tableA, tableB
WHERE tableA.ID = tableB.ID
KRYDSJOIN
SELECT *
FROM tableA, tableB
det er tilbøjeligt til fejl, fordi hvis du glemmer betingelsen, vil det ikke generere syntaksfejl og vil sandsynligvis udføre cross join