sql >> Databasteknik >  >> RDS >> Oracle

Konvertering av Oracle join till Ansi join

Detta skulle vara yttre koppling om alla kolumner i t2 hade (+) modifierare.

Det skulle se ut så här:

Select t1.c1, t2.c2, t1.c3
from t1 left join
     t2 
     on T1.c1 = t2.c1 and T1.c2 = t2.c2 and
        T1.c3 = t2.c3 and T1.c4 = t2.c4
where T1.c1 = '1';

Din version är dock en inre koppling, eftersom vissa av kolumnerna måste matcha -- så det måste finnas en matchande rad i den andra tabellen.

Så den verkliga motsvarigheten är bara:

Select t1.c1, t2.c2, t1.c3
from t1 join
     t2 
     on T1.c1 = t2.c1 and T1.c2 = t2.c2 and
        T1.c3 = t2.c3 and T1.c4 = t2.c4
where T1.c1 = '1';

Och (+) är inte relevant.




  1. Finns det något sätt att definiera en namngiven konstant i en PostgreSQL-fråga?

  2. SQL oracle nybörjarfrågor

  3. Använda Aria Storage Engine med MariaDB Server

  4. Hur man skapar en databasdriven navigeringsmeny på flera nivåer med Laravel