sql >> Databasteknik >  >> RDS >> Oracle

oracle ignorerar ogiltigt identifierarfel i underfrågan

Du har inte kvalificerat dina kolumnnamn. Så du tror att du kör:

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

Om f.airc_manufact inte existerar, då säger omfattningsreglerna att man ska titta i den yttre frågan. Så vad du verkligen kör är:

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

Det är ganska värdelöst som en filtreringsklausul.

Moral:Alltid kvalificera kolumnnamn i en fråga, särskilt om frågan hänvisar till mer än en tabell.




  1. Nod som anropar postgres-funktion med temptabeller som orsakar minnesläcka

  2. Synkronisera databas på ipad med fjärrdatabas

  3. Rails Octopus Gem - Master-Slave Replikeringsanslutningsbeteende när slaven är nere

  4. Oracle SQL:Slå samman rader till en rad