sql >> Database teknologi >  >> RDS >> Oracle

Konvertering af Oracle join til Ansi join

Dette ville være ydre joinforbindelse, hvis alle kolonner i t2 havde (+) modifikator.

Det ville se sådan ud:

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 er dog en indre joinforbindelse, fordi nogle af kolonnerne skal matche -- så der skal være en matchende række i den anden tabel.

Så det rigtige svar er bare:

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';

Og (+) er ikke relevant.




  1. Hvordan flettes værdier af to rækker til en enkelt række for samme id?

  2. Gør SQL Server-ydeevne let

  3. Postgresql - ude af stand til at droppe database på grund af nogle automatiske forbindelser til DB

  4. Dvale tidsstempel med tidszone