Anda harus menggunakan tabel sementara, karena Anda tidak dapat memperbarui sesuatu yang Anda gunakan untuk memilih. Contoh sederhana:
Ini tidak akan berfungsi :
UPDATE mytable p1 SET p1.type= 'OFFER' WHERE p1.parent IN
(SELECT p2.id from mytable p2 WHERE p2.actu_id IS NOT NULL);
Ini akan berhasil:
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);
"from (SELECT * FROM mytable) p2" akan membuat duplikat sementara tabel Anda, yang tidak akan terpengaruh oleh pembaruan Anda