sql >> Database >  >> RDS >> Oracle

Conversie van Oracle join naar Ansi join

Dit zou een outer join zijn als alle kolommen in t2 had de (+) modificatie.

Dat zou er als volgt uitzien:

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

Uw versie is echter een inner join, omdat sommige kolommen moeten overeenkomen -- er moet dus een overeenkomende rij in de tweede tabel zijn.

Het echte equivalent is dus gewoon:

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

En de (+) is niet relevant.




  1. Dynamisch beheerde tabellen verwijderen in MySQL

  2. Bronbeheer en opgeslagen procedures

  3. SELECT LAST_INSERT_ID() werkt in Direct MySQL Query maar niet met tussenpozen PHP QUERY

  4. Vermijd CHAR-bijsnijden bij gebruik van eclipselink