Kuo skiriasi LEFT JOIN
ir LEFT OUTER JOIN
?
Kaip nurodyta dokumentuose: FROM (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Raktažodis OUTER
pažymėtas kaip neprivalomas (pateiktas laužtiniuose skliaustuose). Šiuo konkrečiu atveju, ar nurodysite OUTER
, ar ne, neturi jokios reikšmės. Atkreipkite dėmesį, kad nors kiti sujungimo sąlygos elementai taip pat pažymėti kaip neprivalomi, jų nenurodymas pakeis situaciją.
Pavyzdžiui, visa sąlygos JOIN
tipo dalis yra neprivaloma, tokiu atveju, jei nurodote tik JOIN
, numatytasis nustatymas yra INNER
. Kitaip tariant, tai yra teisėta:
SELECT *
FROM A JOIN B ON A.X = B.Y
Čia pateikiamas lygiaverčių sintaksių sąrašas:
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
Taip pat pažvelkite į atsakymą, kurį palikau į šį kitą SO klausimą: SQL kairysis sujungimas vs kelios lentelės FROM eilutėje?.
Kuo skiriasi kairysis sujungimas ir kairysis išorinis sujungimas?
Nieko. LEFT JOIN
ir LEFT OUTER JOIN
yra lygiaverčiai.