Бывает необходимо удалить из одной таблицы данные по критериям, которые завязаны на других таблицах (умри, вордпресс). В таком случае может пригодиться временная таблица.
# создаем временную таблицу с одним полем для id CREATE TEMPORARY TABLE tmp_ids (id INT); # вставляем в нее результаты выборки INSERT INTO tmp_ids (id) SELECT p.ID FROM `wp_posts` p JOIN `wp_term_relationships` tr ON tr.object_id=p.ID WHERE tr.term_taxonomy_id = 10 AND p.post_type="post" AND p.post_status="publish" AND p.post_date < '2010-09-01'; # теперь удаляем нужные нам записи DELETE FROM `wp_posts` WHERE ID IN (SELECT id FROM tmp_ids);
Надо помнить, что временная таблица действует в рамках одной сессии и удалится после ее окончания. Поэтому все три запроса должны быть в рамках одной транзакции.