За други, които смятат, че този въпрос иска да изтрие, докато използват подзаявка, ви оставям този пример за надхитряване на MySQL (дори ако някои хора изглежда смятат, че не може да се направи):
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar');
ще ви даде грешка:
ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause
Въпреки това, тази заявка:
DELETE e.*
FROM tableE e
WHERE id IN (SELECT id
FROM (SELECT id
FROM tableE
WHERE arg = 1 AND foo = 'bar') x);
ще работи добре:
Query OK, 1 row affected (3.91 sec)
Увийте подзаявката си в допълнителна подзаявка (тук наречена x) и MySQL с радост ще направи това, което поискате.