al usar el ANSI SQL-92
sintaxis, el ON
la palabra clave es parte de la unión excepto por la cross join
ya que no tienes una condición para la relación.
ej.
UNIÓN INTERNA
SELECT *
FROM tableA INNER JOIN tableB
on tableA.ID = tableB.ID
UNIÓN CRUZADA
SELECT *
FROM tableA CROSS JOIN tableB
ON
debe seguirse después de la tabla unida (uniones como INNER y OUTER ) para que no tenga un error de sintaxis. pero si está utilizando el ANSI SQL-89
sintaxis, ON
se omite la palabra clave, pero debe especificar la relación en la cláusula where clause
ej.
UNIÓN INTERNA
SELECT *
FROM tableA, tableB
WHERE tableA.ID = tableB.ID
UNIÓN CRUZADA
SELECT *
FROM tableA, tableB
es propenso a errores porque si olvida la condición, no generará un error de sintaxis y probablemente hará la cross join