LEFT JOIN ir LEFT OUTER JOIN SQL serveryje

Kuo skiriasi LEFT JOIN ir LEFT OUTER JOIN?

Sprendimas

Kaip nurodyta dokumentuose: FROM (Transact-SQL):

 ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [  ] ]
    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, 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?.

Komentarai (24)

Kuo skiriasi kairysis sujungimas ir kairysis išorinis sujungimas?

Nieko. LEFT JOIN ir LEFT OUTER JOIN yra lygiaverčiai.

Komentarai (8)

Sintaksinis cukrus, kad paprastam skaitytojui būtų aiškiau, jog prisijungimas nėra vidinis.

Komentarai (2)