Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

LEFT JOIN vs. LEFT OUTER JOIN dans SQL Server

Selon la documentation :FROM (Transact-SQL) :

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

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

Par exemple, la partie type entière du JOIN la clause est facultative, auquel cas la valeur par défaut est INNER si vous spécifiez simplement 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 œil à la réponse que j'ai laissée sur cette autre question SO :jointure gauche SQL vs plusieurs tables sur la ligne FROM ?.