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

Заявката с повреден подизбор трябва да доведе до грешка, но връща редове

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

С псевдоними заявката, за която сте объркани, ще изглежда така:

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

Надяваме се, че това прави нещата по-ясни?

Проблемът, който виждате, е много добър пример за това защо винаги трябва да етикетирате колоните си с това от коя таблица са дошли - това прави много по-лесно поддържането на заявката за начало!



  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 sql изберете синтаксис с клауза GROUP BY и HAVING

  2. Как да свържете хоризонтални стойности на таблица с вертикални стойности на друга таблица в базата данни на Oracle

  3. Как да извлечете подмножество от база данни в dbunit файл с помощта на sql заявка?

  4. Показване на използването на CPU на Oracle за сесии като процент

  5. JSON_ARRAY() Функция в Oracle