LEFT JOIN vs. LEFT OUTER JOIN en SQL Server

¿Cuál es la diferencia entre LEFT JOIN y LEFT OUTER JOIN?

Solución

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

 ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [  ] ]
    JOIN

La palabra clave OUTER está marcada como opcional (entre corchetes). En este caso concreto, el hecho de especificar o no OUTER no supone ninguna diferencia. Tenga en cuenta que, aunque los demás elementos de la cláusula de unión también están marcados como opcionales, dejarlos fuera supone una diferencia.

Por ejemplo, toda la parte del tipo de la cláusula JOIN es opcional, en cuyo caso el valor por defecto es INNER si sólo se 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 echa un vistazo a la respuesta que dejé en esta otra pregunta de SO: SQL left join vs múltiples tablas en la línea FROM.

introduzca la descripción de la imagen aquí

Comentarios (24)

¿Cuál es la diferencia entre left join y left outer join?

**Nada. El LEFT JOIN y el LEFT OUTER JOIN son equivalentes.

Comentarios (8)

El azúcar sintáctico hace más obvio para el lector casual que la unión no es interna.

Comentarios (2)