sql >> Database >  >> RDS >> Sqlserver

WHERE IN (SELECT NonExistingColumnName) veroorzaakt onverwacht gedrag

Dit is een bekend probleem.

De volgende instructie zal ten onrechte delete ALLE de rijen uit de gebruikerstabel:

DELETE FROM users WHERE user_id IN (SELECT user_id FROM groups);

zelfs als de groepstabel geen kolom heeft met de naam user_id.

De volgende instructie geeft echter een foutmelding:

DELETE FROM users WHERE user_id IN (SELECT g.user_id FROM groups g);

Msg 207, Level 16, State 1, Line 1
Invalid column name user_id

BEWERKEN

DELETE TOP(1) FROM #Orders WHERE OrderID IN (SELECT OtherID FROM #LIST_TO_DELETE  )
 Invalid column name 'OtherID'

Dit geeft een fout, omdat OtherID bestaat niet in #Orders



  1. Laravel-app op Azure:toegang geweigerd voor gebruiker 'azure'@'localhost'

  2. Hoe Oracle te dwingen om indexbereikscan te gebruiken?

  3. Pyspark-verbinding met Postgres-database in ipython-notebook

  4. MySQL NOT IN uit een andere kolom in dezelfde tabel