sql >> Databáze >  >> RDS >> Oracle

Převod Oracle join na Ansi join

Toto by bylo vnější spojení, pokud by všechny sloupce byly v t2 měl (+) modifikátor.

To by vypadalo takto:

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

Vaše verze je však vnitřní spojení, protože některé sloupce se musí shodovat – takže ve druhé tabulce musí být odpovídající řádek.

Takže skutečný ekvivalent je jen:

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

A (+) není relevantní.




  1. Mysql Codeigniter Active Record – Jak provedu dotaz where_in a vrátím správné pořadí výsledků?

  2. Django + MySQL na elastickém Beanstalku – chyba při dotazování na MySQL

  3. paměťově efektivní vestavěný iterátor/generátor SqlAlchemy?

  4. Jak ukládat obrázky do databáze MySQL