关于mysql:You-can‘t-specify-target-table-for-update-in-FROM-clause

MySQL 报错 You can‘t specify target table for update in FROM clause解决办法

意思是: 更新表时,更新的条件也是从这个表查问进去的, 这是不容许的

例如,我这样写的: 就报错

update gs_work set status = '2'
where id in (
 select w.id from gs_work w left join gs_work_cs cs on cs.work_id= w.id where cs.cs_user_id= 1 and w.status ='1') 
    

改成这样就能够了, 条件再加一层

update gs_work set status = '2'
where id in (
  select id from (
 select w.id, w.cur_work from gs_work w left join gs_work_cs cs on cs.work_id= w.id where cs.cs_user_id= 1 and w.status ='1') as nw
    )

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理