sql >> Base de Datos >  >> RDS >> Sqlserver

UNIÓN IZQUIERDA frente a UNIÓN EXTERNA IZQUIERDA en SQL Server

Según la documentación:DE (Transact-SQL):

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

La palabra clave OUTER está marcado como opcional (entre corchetes). En este caso específico, si especifica OUTER o no no hace ninguna diferencia. Tenga en cuenta que mientras los otros elementos de la cláusula de unión también están marcados como opcionales, dejándolos ellos fuera voluntad marcar la diferencia.

Por ejemplo, la parte tipográfica completa de JOIN la cláusula es opcional, en cuyo caso el valor predeterminado es INNER si solo especifica JOIN . En otras palabras, esto es legal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Aquí hay una lista de sintaxis equivalentes:

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

También eche un vistazo a la respuesta que dejé en esta otra pregunta SO:SQL left join vs multiple tables on FROM line?.