Oracle
 sql >> Base de données >  >> RDS >> Oracle

oracle ignore l'erreur d'identifiant non valide dans la sous-requête

Vous n'avez pas qualifié vos noms de colonnes. Donc, vous pensez courir :

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

Si f.airc_manufact n'existe pas, alors les règles de portée disent de regarder dans la requête externe. Donc, ce que vous exécutez réellement, c'est :

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

C'est assez inutile comme clause de filtrage.

Morale :Toujours qualifier les noms de colonne dans une requête, en particulier si la requête fait référence à plusieurs tables.