Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Странна дефиниция на изглед на 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  

Този синтаксис е разгледан в глава 7 от Inside SQL Server 2008 T-SQL Querying или вижте тази статия от Ицик Бен Ган и последващо писмо от Lubor Kollar

Имате ON клауза за t2.AddressOID = t4.OID last например означава, че JOIN на t2 логично се случва последно. т.е. другите съединения са логически първо се обработва, след това LEFT JOIN се случва срещу резултата от тези присъединявания.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL IF блок код, причиняващ грешка, въпреки че не трябва да се изпълнява

  2. Демистификация на CXPACKET и CXCONSUMER типовете чакане в SQL Server

  3. Как да премахнете пространството за раздели в колоната в SQL Server 2008

  4. classNotFoundException при зареждане на JDBC драйвер

  5. ColdFusion 10/Windowns 7 Pro 64bit Неуспешна проверка на връзката за източник на данни