Weird SQL Server view definition

前端 未结 1 1128
甜味超标
甜味超标 2020-12-21 07:03

I\'ve \"inherited\" a well over 10-year old app, and it does show its age at times. I\'ve stumbled across a really weird view definition today - I just can\'t seem to make s

相关标签:
1条回答
  • 2020-12-21 07:59
    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  
    

    This syntax is covered in chapter 7 of Inside SQL Server 2008 T-SQL Querying or see this article by Itzik Ben Gan and the follow up letter by Lubor Kollar

    Having the ON clause for t2.AddressOID = t4.OID last for example means that the JOIN of t2 logically happens last. i.e the other joins are logically processed first then the LEFT JOIN happens against the result of those Joins.

    0 讨论(0)
提交回复
热议问题