sql >> Databáze >  >> RDS >> Sqlserver

Podivná definice zobrazení SQL Serveru

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  

Tato syntaxe je popsána v kapitole 7 dokumentu Inside SQL Server 2008 T-SQL Querying nebo viz k tomuto článku od Itzika Bena Gana a následný dopis od Lubora Kollára

S ON klauzule pro t2.AddressOID = t4.OID poslední například znamená, že JOIN z t2 se logicky stane poslední. tj. ostatní spojení jsou logicky nejprve zpracováno a poté LEFT JOIN se stane proti výsledku těchto spojení.




  1. Získávání výsledků z funkce Postgresql s hodnotou tabulky s JOOQ

  2. Chyba PostgreSQL 42501:Oprávnění odepřeno pro schéma

  3. Co je lepší v MYSQL count(*) nebo count(1)?

  4. Binární strom pomocí PHP + MySQL