¿Cuál es la diferencia entre LEFT JOIN
y LEFT OUTER JOIN
?
Según la documentación: FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
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.
¿Cuál es la diferencia entre left join y left outer join?
**Nada. El LEFT JOIN
y el LEFT OUTER JOIN
son equivalentes.