Per gli altri che trovano questa domanda cercando di eliminare durante l'utilizzo di una sottoquery, ti lascio questo esempio per superare in astuzia MySQL (anche se alcune persone sembrano pensare che non sia possibile):
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar');
ti darà un errore:
ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause
Tuttavia questa domanda:
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar') x);
funzionerà bene:
Query OK, 1 row affected (3.91 sec)
Avvolgi la tua sottoquery in una sottoquery aggiuntiva (qui denominata x) e MySQL farà felicemente ciò che chiedi.