Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Unire più tabelle in SQL

Quando si uniscono più tabelle, l'output di ogni join forma logicamente una tabella virtuale che va nel join successivo.

Quindi nell'esempio nella tua domanda il risultato composito dell'unione dei primi 5 tavoli verrebbe trattato come il tavolo di sinistra.

Per ulteriori informazioni, vedere il poster sull'elaborazione delle query logiche di Itzik Ben-Gan.

Le tabelle virtuali coinvolte nei join possono essere controllate posizionando il ON clausola. Ad esempio

SELECT *
FROM   T1
       INNER JOIN T2
         ON T2.C = T1.C
       INNER JOIN T3
                  LEFT JOIN T4
                    ON T4.C = T3.C
         ON T3.C = T2.C 

è equivalente a (T1 Inner Join T2) Inner Join (T3 Left Join T4)