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

Oracle ignoruje błąd nieprawidłowego identyfikatora w podzapytaniu

Nie zakwalifikowałeś nazw swoich kolumn. Myślisz, że biegniesz:

SELECT a.*
FROM aircraft a
WHERE a.airc_manufact IN (SELECT f.airc_manufact FROM flight f);

Jeśli f.airc_manufact nie istnieje, to zasady określania zakresu mówią, aby szukać w zewnętrznym zapytaniu. Tak więc naprawdę działasz:

SELECT a.*
FROM aircraft a
WHERE a.airc_manufact IN (SELECT a.airc_manufact FROM flight f);

To jest całkiem bezużyteczne jako klauzula filtrująca.

Morał:Zawsze zakwalifikować nazwy kolumn w zapytaniu, szczególnie jeśli zapytanie odnosi się do więcej niż jednej tabeli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykład klauzuli WHEN wyzwalacza Oracle

  2. Jak grupować kolejne wiersze w SQL według wielu kolumn?

  3. Zagnieżdżone funkcje agregujące

  4. Miej dane wyjściowe PL/SQL w czasie rzeczywistym

  5. Jak zainstalować klienta SQL * PLUS w systemie Linux?