LEFT JOIN vs. LEFT OUTER JOIN dans SQL Server

Quelle est la différence entre LEFT JOIN et LEFT OUTER JOIN ?

Solution

Selon la documentation : [FROM (Transact-SQL)][1] :

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

Le mot-clé OUTER est marqué comme facultatif (entre crochets). Dans ce cas précis, que vous spécifiez OUTER ou non ne fait aucune différence. Notez que si les autres éléments de la clause de jonction sont également marqués comme facultatifs, le fait de les omettre fera une différence.

Par exemple, toute la partie "type" de la clause JOIN est optionnelle, auquel cas la valeur par défaut est INNER si vous spécifiez seulement JOIN. En d'autres termes, c'est légal :

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

Voici une liste de syntaxes équivalentes :

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

Jetez également un coup d'œil à la réponse que j'ai laissée à cette autre question de SO : [Jointure gauche SQL vs plusieurs tables sur la ligne FROM ?][2].

![entrez la description de l'image ici][3]

[1] : http://msdn.microsoft.com/en-us/library/ms177634%28SQL.90%29.aspx [2] : https://stackoverflow.com/a/894659/267 [3] : http://i.stack.imgur.com/qje6o.png

Commentaires (24)

Quelle est la différence entre une jointure gauche et une jointure externe gauche ?

Rien. La "jointure gauche" et la "jointure extérieure gauche" sont équivalentes.

Commentaires (8)

Le sucre syntaxique, rend plus évident pour le lecteur occasionnel que la jointure n'est pas une jointure interne.

Commentaires (2)