关于My Sql update语句不能用子查询的解决办法
在使用My Sql数据库语法操作update时,第一时间想到的是一下写法:
UPDATE purchase_request_detail SET convert_to_voucher_id=2, convert_to_voucher_type='inventory-voucher' WHERE detail_id IN (select detail_id from purchase_request_detail where request_id=1 and item_id=1) ;
但是这个时候就会报错:You can't specify target table 'xxx' for update in FROM
My Sql的update的一些特点
1、update 时,更新的表不能在set和where中用于子查询;
2、update 时,可以对多个表进行更新(Sql Server不行);
如:update table_a A,table_b B set A.B_ID=B.ID ,B.A_ID=A.ID;
3、update 后面可以做任意的查询,这个作用等同于FROM;
所以My Sql update是不允许使用子查询的,正确写法是:
UPDATE purchase_request_detail AS table_1 INNER JOIN (select detail_id from purchase_request_detail where request_id=1 and item_id=1) AS table_2 SET convert_to_voucher_id=2, convert_to_voucher_type='inventory-voucher' WHERE table_1.detail_id = table_2.detail_id;
转载于:https://www.cnblogs.com/liuchenxing/p/9178665.html
关于My Sql update语句不能用子查询的解决办法相关推荐
- mysql update语句卡死_oracle执行update语句时卡住问题分析及解决办法
问题 开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果.但是奇怪的是执行其他的select语句却是 ...
- oracle中update子查询,UPDATE语句-简单形式-子查询形式
关于UPDATE语句 一般的update语句格式比较简单,由where过滤子句和set子句组成. 当where和set都需要关联一个表进行查询时,整个update执行时,就需要对被关联的表进行两次扫描 ...
- update语句中使用子查询
55. 更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job 1). 搭建骨架 update employees set salary = (), ...
- mysql视图子查询_mysql创建视图不能包涵子查询的解决办法。View's SELECT contains a subquery in the FROM clause...
如下查询是没问题,但要创建成视图就报View's SELECT contains a subquery in the FROM clause错误. CREATE or REPLACE VIEW `v_ ...
- 枚举反射的应用(sql update语句匹配)
枚举反射的应用(sql update语句匹配) protected void update(T o, boolean deleteflag) {StringBuilder sd = new Strin ...
- MySQL数据库---子查询insert,update,delete语句中嵌套子查询
十.子查询的使用(重点) 1.子查询:指的是查询语句,嵌套查询语句---->一般是放在where子句中,表示条件. 2.子查询的应用使用场景: 2.1查询过程中,虽然给了条件,但是条件的结果并不 ...
- SQL update语句加减乘除运
SQL update语句加减乘除运算 在处理提现操作时,遇到这样一个问题:account_money为用户剩余金额,提现之后要减去相应金额,需要用update语句进行运算,记录一下 update之前数 ...
- SQL UPDATE 语句(更新表中的记录)
SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录. 还可以使用AND或OR运算符组合多个条件. SQL UPDATE 语法 具有WHERE子句的UPDATE查询的基本语法如下所示 ...
- sql update 语句_SQL Update语句概述
sql update 语句 In this article, we'll walk-through the SQL update statement to modify one or more exi ...
最新文章
- XamarinAndroid组件教程RecylerView适配器设置动画
- python pdf处理 图片_在Python中从PDF提取图像而无需重新采样?
- kafka系列文章索引
- 腾讯专家教你如何保证应用开发安全
- MVC下用C#实现Excel导出
- python列表索引负数_python – 如何检查列表索引是否存在?
- Spring-IOC推导
- 网站文件系统发展分布式文件系统fastDFS
- 蓝宝石会升级bios吗_浴火重生 蓝宝石HD7950 Flex测BIOS提速
- 计算机应用水平测试excel,职称计算机考试Excel操作题及答案
- LQR、LQR-MPC、GP-MPC控制倒立摆
- 奥比中光深度摄像头_奥比中光:确认iPhone X前置3D深度摄像头采用结构光方案...
- 新员工入职表_招人难,留人难!超市如何留住新员工
- TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
- 身高测量c语言编程,测身高的C语言程序.doc
- ios键盘done中文_IOS_总结IOS中隐藏软键盘的三种方式,一、使用软键盘的 Done 键隐藏 - phpStudy...
- 孩子教育,不要只看重分数!
- 短链接服务架构设计概览
- 布局5G旗舰移动市场 MediaTek发布天玑新品
- 【JavaScript】转载:JS高端奇淫技巧
热门文章
- TypeError: atlas.getSpriteFrame is not a function
- Node.JS 学习路线图
- Cisco 2900 series添加VWIC2-1MFT-G703板卡
- smarty+php+ajax 简单无刷新分页
- 基于jquery的上传插件Uploadify 3.1.1在MVC3中的使用
- Java多线程初学者指南(12):使用Synchronized块同步变量
- ASP.NET页面的处理过程完全版_AX
- MySQL高级 - InnoDB特性
- Nacos配置管理-配置热更新
- Nginx的error_page指令