Трябва да използвате временна таблица, защото не можете да актуализирате нещо, което използвате, за да изберете. Един прост пример:
Това няма да работи :
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);
Това ще свърши работа:
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from (SELECT * FROM mytable) p2 WHERE p2.actu_id IS NOT NULL);
"от (SELECT * FROM mytable) p2" ще създаде временен дубликат на вашата таблица, който няма да бъде засегнат от вашите актуализации