MySQL 报错 You can‘t specify target table for update in FROM clause解决办法
2023-12-13 12:12:42
You can’t specify target table for update in FROM clause
其含义是:不能在同一表中查询的数据作为同一表的更新数
单独执行复合查询是正常的,如下:
但是当执行子查询删除命令时,报如下错误
DELETE FROM abpusers WHERE Id IN
(
SELECT u.Id FROM `abpusers` u
left join abpuserroles ur on u.Id=ur.UserId
LEFT JOIN abproles r on ur.RoleId=r.Id
LEFT join base_companyinfo c on u.Id=c.UserId
WHERE r.`Name` in('supplier','demand')
and c.Id is NULL
)
且在其他类型的数据库中并不会出现,解决方法也简单,就是再封装一次查询,让数据库认为你不是查同一表的数据作为同一表的更新数据,如下:
DELETE FROM abpusers WHERE Id IN
(
select Id from (
SELECT u.Id FROM `abp
文章来源:https://blog.csdn.net/weixin_38225763/article/details/134966562
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!