Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Unindo várias tabelas no SQL


Ao unir várias tabelas, a saída de cada junção forma logicamente uma tabela virtual que vai para a próxima junção.

Portanto, no exemplo da sua pergunta, o resultado composto da junção das 5 primeiras tabelas seria tratado como a tabela da esquerda.

Veja o Pôster de Processamento de Consulta Lógica de Itzik Ben-Gan para saber mais sobre isso.

As tabelas virtuais envolvidas nas junções podem ser controladas posicionando o ON cláusula. Por exemplo
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)