Untuk orang lain yang menemukan pertanyaan ini ingin dihapus saat menggunakan subquery, saya meninggalkan Anda contoh ini untuk mengakali MySQL (bahkan jika beberapa orang tampaknya berpikir itu tidak dapat dilakukan):
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar');
akan memberi Anda kesalahan:
ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause
Namun pertanyaan ini:
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar') x);
akan bekerja dengan baik:
Query OK, 1 row affected (3.91 sec)
Bungkus subquery Anda dalam subquery tambahan (di sini bernama x) dan MySQL akan dengan senang hati melakukan apa yang Anda minta.