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

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 `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
) a
)

 结果如下,已成功影响21行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Gradle】运行时一直要下载 gradle-8.5-bin.zip

如何解决 Downloading https://services.gradle.org/distributions/gradle-8.5-bin.zip 的问题 文章目录 1. 问题描述2. 解决方法1)找到 gradle-wrapper.properties2)修改 distributionUrl 对应的值 3. 验证 1. 问题描述 在执行 gradlew 命令的时候&…

频谱论文:面向频谱地图构建的频谱态势生成技术研究

#频谱# [1]李竟铭.面向频谱地图构建的频谱态势生成技术研究.2019.南京航空航天大学,MA thesis.doi:10.27239/d.cnki.gnhhu.2019.000556. (南京航空航天大学) 频谱地图是对无线电环境的抽象表达,它可以直观、多维度地展现频谱态势信息&…

基于Python实现的一个书法字体风格识别器源码,通过输入图片,识别出图片中的书法字体风格,采用Tkinter实现GUI界面

项目描述 本项目是一个书法字体风格识别器,通过输入图片,识别出图片中的书法字体风格。项目包含以下文件: 0_setting.yaml:配置文件,包含书法字体风格列表、图片调整大小的目标尺寸等设置。1_Xy.py:预处理…

【最新版】在WSL上运行 Linux GUI (图形用户界面)应用(Gnome 文本编辑器、GIMP、Nautilus、VLC、X11 应用)

文章目录 一、 安装WSL0. 先决条件1. 全新安装2. 现有 WSL 安装3. 注意事项 二、运行 Linux GUI 应用1. 更新发行版中的包2. 安装 Gnome 文本编辑器启动 3. 安装 GIMP启动 4. 安装 Nautilus启动 5. 安装 VLC启动 6. 安装 X11 应用 适用于 Linux 的 Windows 子系统 (WSL) 现在支…

深入理解强化学习——马尔可夫决策过程:价值迭代-[价值迭代算法]

分类目录:《深入理解强化学习》总目录 文章《深入理解强化学习——马尔可夫决策过程:价值迭代-[最优性原理]》和文章《深入理解强化学习——马尔可夫决策过程:价值迭代-[确认性价值迭代]》介绍了价值迭代的基础知识,本文将介绍价值…

在公司内网开发的时候如何和互联网第三方平台环境联调之内网穿透

一、背景 一般情况下,不会出现所处不在同一网段进行后端服务联调,但是当遇到和第三方平台对接之时,这个时候如果你自身处在公司内部局域网的范畴下,那么一般都是会被保护的,也就是说外网无法访问你的ip。这个时候就需…

【赠书第11期】Unity 3D游戏开发

文章目录 前言 1 Unity 3D简介 2 Unity 3D基本概念 2.1 场景(Scene) 2.2 游戏对象(Game Object) 2.3 组件(Component) 2.4 资源(Asset) 3 Unity 3D重要组件 3.1 物理引擎 …

百分比组件 - elementui改动

<el-slider v-model"value2" style"width: 87%;position: absolute;bottom: 9px;" disabled :show-tooltip"false"></el-slider>value2: 0,// 百分比条 ::v-deep .el-slider__runway.disabled .el-slider__bar {background-color: #…

Go标准包之flag命令行参数解析

1.介绍 在 Go中&#xff0c;如果要接收命令行参数&#xff0c;需要使用 flag 包进行解析。不同的参数类型可以通过不同的方法接收。 2.参数接受 2.1 接受方式 使用flag接收参数&#xff0c;可以由以下三种方式接受&#xff1a; 方式一: flag.Type(name,defaultVal,desc)方…

基于PyCharm实现串口GUI编程

工具效果如下如所示 下面简单介绍一下操作流程 1.打开PyCharm软件 2.创建一个工程 3.给该工程命名 4.在main.py里面黏贴如下的代码 # This is a sample Python script. # Press ShiftF10 to execute it or replace it with your code. # Press Double Shift to search everyw…

vcs+verdi+uvm单步调试及问题记录

编译 编译选项如下&#xff1a; vcs -ntb_opts uvm -sverilog -f $PROJ_ROOT/tb/option.f -debug_accessall -kdb -lca -full64 -fsdb_old -timescale1ns/10ps其中最重要的是要加上这四项 -debug_accessall -kdb -lca -full64 option.f里面的内容如下&#xff0c;是一些verd…

mybatis plus 公共字段自动填充createBy updateBy

一、公共字段自动填充 需求&#xff1a;好多表公共的字段&#xff0c;赋值逻辑也相同&#xff0c;不用每次为其赋值&#xff0c;‘拦截器’统一赋值。 1. 在新增数据时&#xff0c;需要设置创建时间、创建人、修改时间、修改人等字段&#xff0c;在编辑数据时需要设置修改时间…