Dat werkt zoals verwacht, vanwege de correlatie tussen KolomA in de binnenste query naar de buitenste.
Dit veelgebruikte gecorreleerde zoekpatroon is geldig
DELETE TableA WHERE NOT EXISTS (select * from TableB where TableB.ID=TableA.ID)
Het verwijdert TableA-items die geen afhankelijke record hebben in TableB.
Het laat zien dat u kunt verwijzen naar TableA-kolommen in een gecorreleerde query. In uw vraag
delete TableA where ColumnA in (select ColumnA from TableB)
De innerlijke vraag produceert
- één rij voor elke record in TableB
- één kolom voor elke rij, waarvan de waarde ColumnA is van de buitenste query
Dus het VERWIJDEREN gaat door