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

Външно съединение на Oracle с условие за филтър на втората таблица

Не, няма условие, при което резултатите ще бъдат различни.

Но вашето предположение „a.id = b.id(+) няма значение" не е 100% правилно. То има значение, защото дефинира съединението, в противен случай това би било декартово произведение на a и b с всички редове от a и b.name ='XYZ'.

Това, което няма ефект, е (+) , тъй като твърдението е "семантично" погрешно. Няма смисъл да се присъединявате външно по id, но да се присъединявате по име.

Обикновено се иска нещо такова:

select  * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';

Кратък пример на http://www.sqlfiddle.com/#!4/d19b4/ 15




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберем доставчик на Oracle за .Net приложение?

  2. Oracle 11g - SQL за изчисляване на времевата разлика между няколко реда

  3. EXTRACT (datetime) Функция в Oracle

  4. PL/SQL Как да върнете всички атрибути в ROW

  5. ORA-01008:не всички променливи са обвързани. Те са обвързани