Funziona come previsto, a causa della correlazione tra ColumnA nella query interna e quella esterna.
Questo modello di query correlato comunemente utilizzato è valido
DELETE TableA WHERE NOT EXISTS (select * from TableB where TableB.ID=TableA.ID)
Rimuove le voci TableA che non hanno un record dipendente in TableB.
Mostra che puoi fare riferimento alle colonne di TableA in una query correlata. Nella tua richiesta
delete TableA where ColumnA in (select ColumnA from TableB)
La query interna sta producendo
- una riga per ogni record in TableB
- una colonna per ogni riga, il cui valore è ColonnaA dalla query esterna
Quindi DELETE passa attraverso