sql >> Databasteknik >  >> RDS >> Sqlserver

LEFT JOIN vs. LEFT OUTER JOIN i SQL Server

Enligt dokumentationen:FROM (Transact-SQL):

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

Nyckelordet OUTER är markerad som tillval (omsluten inom hakparenteser). I det här specifika fallet, om du anger OUTER eller inte gör ingen skillnad. Observera att medan de andra elementen i join-satsen också är markerade som valfria, lämnar dem ut kommer göra skillnad.

Till exempel hela typdelen av JOIN satsen är valfri, i vilket fall standarden är INNER om du bara anger JOIN . Med andra ord, detta är lagligt:

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

Här är en lista över likvärdiga syntaxer:

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

Ta också en titt på svaret jag lämnade på den här andra SO-frågan:SQL left join vs multiple tables on FROM line?.



  1. De vanligaste PostgreSQL-felscenarierna

  2. Hur man krypterar en lagrad procedur i SQL Server

  3. Formatera ett tal som valuta i MariaDB

  4. Oracle 12cR2 nu i Beta