Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

ON fa parte della sintassi

quando si utilizza ANSI SQL-92 sintassi, il ON la parola chiave fa parte del join ad eccezione del cross join dal momento che non hai una condizione per la relazione.

es.

UNIONE INTERNA

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

CROSS JIN

SELECT *
FROM tableA CROSS JOIN tableB

ON dovrebbe essere seguito dopo il tavolo unito (unisce come INNER e OUTER ) quindi non avrai errori di sintassi. ma se stai usando ANSI SQL-89 sintassi, ON la parola chiave è omessa ma devi specificare la relazione nella where clause

es.

UNIONE INTERNA

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

CROSS JIN

SELECT *
FROM tableA, tableB

è soggetto a errori perché se dimentichi la condizione, non genererà un errore di sintassi e probabilmente eseguirà il cross join