Kakšna je razlika med LEFT JOIN
in LEFT OUTER JOIN
?
V skladu z dokumentacijo: OD (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Ključna beseda OUTER
je označena kot neobvezna (v oglatih oklepajih). V tem posebnem primeru je vseeno, ali navedete OUTER
ali ne. Upoštevajte, da so tudi drugi elementi stavka o združitvi označeni kot neobvezni, vendar če jih izpustite, bo to pomenilo razliko.
Na primer, celoten del tipa klavzule JOIN
je neobvezen in v tem primeru je privzeta vrednost INNER
, če navedete samo JOIN
. Z drugimi besedami, to je zakonito:
SELECT *
FROM A JOIN B ON A.X = B.Y
Tukaj je seznam enakovrednih skladenj:
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
Oglejte si tudi odgovor, ki sem ga pustil na to drugo vprašanje SO: SQL left join vs več tabel v vrstici FROM?.
Kakšna je razlika med levim in levim zunanjim spajanjem?
Nič. LEFT JOIN
in LEFT OUTER JOIN
sta enakovredna.