You can't specify target table 'XXX' for update in FROM clause

报错如题,意思大致是:在一条 sql 语句中不能先查出来部分内容,再同时又对当前表作修改。
解决方法:给查询加别名,用中间表来实现不是对同一表作操作。

如错误定法:

UPDATE appbricks_department
SET rank = '2'  
WHERE parent_id in (SELECT id FROM appbricks_department WHERE parent_id IS NULL) ;

改后的写法:

UPDATE appbricks_department
SET rank = '2'  
WHERE parent_id in
 (SELECT * FROM (SELECT id FROM appbricks_department WHERE parent_id IS NULL) a );
 

posted @ 2018-11-04 13:20  車輪の唄  阅读(10)  评论(0)    收藏  举报  来源