Oracle
 sql >> база данни >  >> RDS >> Oracle

Преобразуване на Oracle join в Ansi join

Това би било външно съединение, ако всички колони в t2 имаше (+) модификатор.

Това би изглеждало така:

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

Вашата версия обаче е вътрешно съединение, тъй като някои от колоните трябва да съвпадат -- така че трябва да има съответстващ ред във втората таблица.

И така, истинският еквивалент е просто:

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

И (+) не е от значение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се вмъкне Unicode с помощта на cx-Oracle

  2. Java не изпълнява подготвителни изрази с параметър

  3. Поръчайте версии като номера

  4. Oracle замества изглед по време на заявка

  5. как да отпечатам Statement (CallableStatement) в Java?