sql >> Database >  >> RDS >> Sqlserver

LEFT JOIN vs. LEFT OUTER JOIN in SQL Server

Volgens de documentatie:FROM (Transact-SQL):

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

Het trefwoord OUTER is gemarkeerd als optioneel (tussen vierkante haken). In dit specifieke geval, of u nu OUTER . specificeert of niet maakt niet uit. Merk op dat hoewel de andere elementen van de join-clausule ook als optioneel zijn gemarkeerd, them uit zal het verschil maken.

Bijvoorbeeld het hele type-gedeelte van de JOIN clausule is optioneel, in welk geval de standaard INNER . is als je gewoon JOIN opgeeft . Met andere woorden, dit is legaal:

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

Hier is een lijst met equivalente syntaxis:

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

Kijk ook eens naar het antwoord dat ik heb achtergelaten op deze andere SO-vraag:SQL left join vs meerdere tabellen op FROM-regel?.



  1. Uitgesloten rijen opnemen in RETURNING from INSERT ... ON CONFLICT

  2. Formaat getal tot op 2 decimalen

  3. Maak een scalaire door de gebruiker gedefinieerde functie in SQL Server

  4. Een verbindingstime-out instellen met PDO