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

Zapytanie z uszkodzonym podselekcję powinno skutkować błędem, ale zwraca wiersze

Powodem jest to, że gdy kolumna bez aliasów nie istnieje w podzapytaniu, ale istnieje w zapytaniu zewnętrznym, Oracle zakłada, że ​​odwołujesz się do kolumny z zapytania zewnętrznego.

W przypadku aliasów zapytanie, z którym się mylisz, wyglądałoby tak:

select *
from   test_values tv
where  tv.tst_id in (select tv.tst_id2
                     from   test_lookup tl
                     where  tl.tst_value = 'findMe');

Mamy nadzieję, że dzięki temu wszystko będzie jaśniejsze?

Problem, który widzisz, jest bardzo dobrym przykładem tego, dlaczego zawsze powinieneś oznaczyć kolumny nazwą tabeli, z której pochodzą — na początku znacznie ułatwia to utrzymanie zapytania!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfiguracja Oracle OCI8 dla Windows 64 bit

  2. pytania do rozmowy kwalifikacyjnej Oracle PLSQL

  3. Sprawdź, czy tabela istnieje w bazie danych - PL SQL

  4. Sprawdź, czy daty nakładają się w dowolnym wierszu tabeli Oracle SQL

  5. Jak przekazać tablicę ciągów z C# do procedury składowanej Oracle