Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

ON faz parte da sintaxe


ao usar o ANSI SQL-92 sintaxe, o ON palavra-chave faz parte da junção, exceto para a cross join já que você não tem condição para o relacionamento.

ex.

INNER JOIN
SELECT *
FROM tableA INNER JOIN tableB
       on tableA.ID = tableB.ID

CROSS JOIN
SELECT *
FROM tableA CROSS JOIN tableB

ON deve ser seguido após a tabela unida (junções como INNER e OUTER ) para que você não tenha erro de sintaxe. mas se você estiver usando o ANSI SQL-89 sintaxe, ON palavra-chave é omitida, mas você deve especificar o relacionamento na where clause

ex.

INNER JOIN
SELECT *
FROM tableA, tableB
WHERE tableA.ID = tableB.ID

CROSS JOIN
SELECT *
FROM tableA, tableB

é propenso a erros porque se você esquecer a condição, ele não gerará erro de sintaxe e provavelmente fará o cross join