码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-04-29 22:31:03      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:_id   出现   ecif   sel   ble   sql   mysq   HERE   can   

 

UPDATE emp e SET e.salary=e.salary+7 WHERE e.id IN(SELECT e1.id FROM emp e1,dept d WHERE e1.dep_id=d.id AND d.name=‘开发一部‘ AND e1.salary<2000);

不能先select出同一表中的某些值,再update这个表(在同一语句中)。

在mysql 中会出现这个问题。

改写:

UPDATE emp e SET e.salary=e.salary+7 WHERE e.id IN(

  SELECT w.* FROM(

    SELECT e1.id FROM emp e1,dept d WHERE e1.dep_id=d.id AND d.name=‘开发一部‘ AND e1.salary<2000

    ) w

);

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

标签:_id   出现   ecif   sel   ble   sql   mysq   HERE   can   

原文地址:https://www.cnblogs.com/mryangbo/p/10793278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!