您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysql 修改时子查询的问题

bubuko 2022/1/25 19:58:49 mysql 字数 1203 阅读 619 来源 http://www.bubuko.com/infolist-5-1.html

在学习时,我在update语句中子查询了修改表,报出如下错误 You can't specify target table 'beauty' for update in FROM clause 原因是不能子查询select出同一表中的某些值,再update这个表(在同一语句中) 错误案例 UPDAT ...

在学习时,我在update语句中子查询了修改表,报出如下错误

You can‘t specify target table ‘beauty‘ for update in FROM clause

原因是不能子查询select出同一表中的某些值,再update这个表(在同一语句中)

错误案例

 UPDATE beauty SET boyfriend_id =2
WHERE beauty.id IN (SELECT beauty.id id FROM beauty LEFT JOIN boys ON boys.id=beauty.`boyfriend_id` WHERE beauty.`boyfriend_id` IS NULL)

应该写法

 UPDATE beauty SET boyfriend_id =2 WHERE beauty.id
IN (SELECT b.id FROM
(SELECT beauty.id id FROM beauty LEFT JOIN boys ON boys.id
=beauty.`boyfriend_id`
WHERE beauty.`boyfriend_id` IS NULL)
AS b)

虽然其实可以直接外连接修改。但是误打误撞这个问题,记录一下

 

 

mysql 修改时子查询的问题

原文:https://www.cnblogs.com/hurui1/p/12670707.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶