sql >> Databáze >  >> RDS >> Oracle

Oracle ignoruje chybu neplatného identifikátoru v dílčím dotazu

Nezadali jste názvy sloupců. Takže si myslíte, že běžíte:

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

Pokud f.airc_manufact neexistuje, pak pravidla rozsahu říkají, že se má hledat ve vnějším dotazu. Takže to, co skutečně provozujete, je:

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

To je jako filtrovací klauzule docela k ničemu.

Morálka:Vždy kvalifikovat názvy sloupců v dotazu, zejména pokud dotaz odkazuje na více než jednu tabulku.




  1. zachycení prvního řádku pouze v dotazu mysql

  2. Jak zkombinuji dva příkazy UPDATE v jednom dotazu MySQL?

  3. jak vypnout Heroku SQL protokoly z postgresu

  4. Uložení časového pásma v datovém typu časové razítko s časovým pásmem