Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Złączenie zewnętrzne Oracle z warunkiem filtrowania w drugiej tabeli

Nie, nie ma warunku, w którym zestawy wyników będą różne.

Ale twoje założenie „a.id = b.id(+) nie ma znaczenia” nie jest w 100% poprawne. ma znaczenie, ponieważ definiuje sprzężenie, w przeciwnym razie byłby to iloczyn kartezjański aib ze wszystkimi wierszami z a i b.name ='XYZ'.

To, co nie ma wpływu, to (+) , ponieważ stwierdzenie jest „semantycznie” błędne. Nie ma sensu łączyć zewnętrzne na id, ale łączyć na nazwę.

Zwykle coś takiego jest potrzebne:

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

Krótki przykład na 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. Kiedy muszę użyć średnika, a kiedy ukośnika w Oracle SQL?

  2. Utwórz formularz Apex z wieloma stronami

  3. Wyrocznia:LONG czy CLOB?

  4. Jak policzyć liczbę nienastępujących po sobie wartości w kolumnie za pomocą SQL?

  5. Dlaczego otrzymuję błąd java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnection?