sql >> Base de Datos >  >> RDS >> Oracle

Oracle ignora el error de identificador no válido en la subconsulta

No ha calificado los nombres de sus columnas. Entonces, crees que estás ejecutando:

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

Si f.airc_manufact no existe, entonces las reglas de alcance dicen que busque en la consulta externa. Entonces, lo que realmente estás ejecutando es:

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

Eso es bastante inútil como cláusula de filtrado.

Moraleja:Siempre calificar nombres de columnas en una consulta, particularmente si la consulta se refiere a más de una tabla.