您的位置:首页 > 数据库 > MySQL

解决mysql不能修改(You can't specify target table 'basic_data' for update in FROM clause)

2013-03-02 15:09 573 查看
今天遇到一个问题

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

原句

UPDATE basic_data SET manage_user=4 WHERE id IN
(SELECT b.id from basic_data b JOIN department d on d.id =b.department JOIN users u on u.department_id=d.id  where d.id=1)


修改后

UPDATE basic_data SET manage_user=4 WHERE id IN
(SELECT b.id from (SELECT * FROM basic_data) b JOIN department d on d.id =b.department JOIN users u on u.department_id=d.id  where d.id=1)


原理 是mysql 把 查询子句当做一个临时表,不在当做一个实体表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐