Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Seltsame SQL Server-Ansichtsdefinition

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  

Diese Syntax wird in Kapitel 7 von Inside SQL Server 2008 T-SQL Querying behandelt oder siehe diesem Artikel an von Itzik Ben Gan und dem Folgebrief von Lubor Kollar

Mit dem ON -Klausel für t2.AddressOID = t4.OID last zum Beispiel bedeutet, dass der JOIN von t2 kommt logischerweise zuletzt. d.h. die anderen Joins sind logisch verarbeitet zuerst dann den LEFT JOIN geschieht gegen das Ergebnis dieser Joins.