Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertierung von Oracle-Join in Ansi-Join

Dies wäre ein äußerer Join, wenn alle Spalten in t2 sind hatte den (+) Modifikator.

Das würde so aussehen:

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

Ihre Version ist jedoch ein innerer Join, da einige der Spalten übereinstimmen müssen – also muss es eine übereinstimmende Zeile in der zweiten Tabelle geben.

Das wirkliche Äquivalent ist also nur:

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

Und der (+) ist nicht relevant.