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.