Това работи според очакванията, поради корелацията между ColumnA във вътрешната заявка и външната.
Този често използван модел на корелирана заявка е валиден
DELETE TableA WHERE NOT EXISTS (select * from TableB where TableB.ID=TableA.ID)
Той премахва записи в TableA, които нямат зависим запис в TableB.
Показва, че можете да препращате към колони TableA в корелирана заявка. Във вашата заявка
delete TableA where ColumnA in (select ColumnA from TableB)
Вътрешната заявка се произвежда
- един ред за всеки запис в TableB
- една колона за всеки ред, чиято стойност е ColumnA от външната заявка
Така че DELETE преминава