Điều đó hoạt động như mong đợi, do mối tương quan giữa ColumnA trong truy vấn bên trong với bên ngoài.
Mẫu truy vấn tương quan thường được sử dụng này là hợp lệ
DELETE TableA WHERE NOT EXISTS (select * from TableB where TableB.ID=TableA.ID)
Nó loại bỏ các mục nhập TableA không có bản ghi phụ thuộc trong TableB.
Nó cho thấy rằng bạn có thể tham chiếu các cột TableA trong một truy vấn tương quan. Trong truy vấn của bạn
delete TableA where ColumnA in (select ColumnA from TableB)
Truy vấn bên trong đang tạo ra
- một hàng cho mỗi bản ghi trong TableB
- một cột cho mỗi hàng, có giá trị là CộtA từ truy vấn bên ngoài
Vì vậy, DELETE được thực hiện