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

Definição de exibição estranha do SQL Server

SELECT ...
FROM   dbo.viewFirst vf
       INNER JOIN dbo.Table1 t1
         ON vf.MVOID = t1.MVOID
            AND vf.ValidFrom = t1.ValidFrom
       LEFT OUTER JOIN dbo.Table2 t2
                       RIGHT OUTER JOIN dbo.Table3 t3
                         ON t2.OID = t3.FKOID
                       LEFT OUTER JOIN dbo.Table4 t4
                         ON t3.ZVOID = t4.OID
                       LEFT OUTER JOIN dbo.Table5 t5
                                       INNER JOIN dbo.Table4 t6
                                         ON t5.OID = t6.BCOID
                         ON t4.ZVOID = t5.OID
         ON t2.AddressOID = t4.OID  

Essa sintaxe é abordada no capítulo 7 do Inside SQL Server 2008 T-SQL Querying ou consulte este artigo por Itzik Ben Gan e a carta de acompanhamento por Lubor Kollar

Tendo o ON cláusula para t2.AddressOID = t4.OID último, por exemplo, significa que o JOIN de t2 logicamente acontece por último. ou seja, as outras junções são logicamente processado primeiro e depois o LEFT JOIN acontece contra o resultado desses Joins.