在使用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语句不能用子查询的解决办法相关推荐

  1. mysql update语句卡死_oracle执行update语句时卡住问题分析及解决办法

    问题 开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果.但是奇怪的是执行其他的select语句却是 ...

  2. oracle中update子查询,UPDATE语句-简单形式-子查询形式

    关于UPDATE语句 一般的update语句格式比较简单,由where过滤子句和set子句组成. 当where和set都需要关联一个表进行查询时,整个update执行时,就需要对被关联的表进行两次扫描 ...

  3. update语句中使用子查询

    55. 更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job 1). 搭建骨架 update employees set salary = (), ...

  4. 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_ ...

  5. 枚举反射的应用(sql update语句匹配)

    枚举反射的应用(sql update语句匹配) protected void update(T o, boolean deleteflag) {StringBuilder sd = new Strin ...

  6. MySQL数据库---子查询insert,update,delete语句中嵌套子查询

    十.子查询的使用(重点) 1.子查询:指的是查询语句,嵌套查询语句---->一般是放在where子句中,表示条件. 2.子查询的应用使用场景: 2.1查询过程中,虽然给了条件,但是条件的结果并不 ...

  7. SQL update语句加减乘除运

    SQL update语句加减乘除运算 在处理提现操作时,遇到这样一个问题:account_money为用户剩余金额,提现之后要减去相应金额,需要用update语句进行运算,记录一下 update之前数 ...

  8. SQL UPDATE 语句(更新表中的记录)

    SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录. 还可以使用AND或OR运算符组合多个条件. SQL UPDATE 语法 具有WHERE子句的UPDATE查询的基本语法如下所示 ...

  9. sql update 语句_SQL Update语句概述

    sql update 语句 In this article, we'll walk-through the SQL update statement to modify one or more exi ...

最新文章

  1. XamarinAndroid组件教程RecylerView适配器设置动画
  2. python pdf处理 图片_在Python中从PDF提取图像而无需重新采样?
  3. kafka系列文章索引
  4. 腾讯专家教你如何保证应用开发安全
  5. MVC下用C#实现Excel导出
  6. python列表索引负数_python – 如何检查列表索引是否存在?
  7. Spring-IOC推导
  8. 网站文件系统发展分布式文件系统fastDFS
  9. 蓝宝石会升级bios吗_浴火重生 蓝宝石HD7950 Flex测BIOS提速
  10. 计算机应用水平测试excel,职称计算机考试Excel操作题及答案
  11. LQR、LQR-MPC、GP-MPC控制倒立摆
  12. 奥比中光深度摄像头_奥比中光:确认iPhone X前置3D深度摄像头采用结构光方案...
  13. 新员工入职表_招人难,留人难!超市如何留住新员工
  14. TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
  15. 身高测量c语言编程,测身高的C语言程序.doc
  16. ios键盘done中文_IOS_总结IOS中隐藏软键盘的三种方式,一、使用软键盘的 Done 键隐藏 - phpStudy...
  17. 孩子教育,不要只看重分数!
  18. 短链接服务架构设计概览
  19. 布局5G旗舰移动市场 MediaTek发布天玑新品
  20. 【JavaScript】转载:JS高端奇淫技巧

热门文章

  1. TypeError: atlas.getSpriteFrame is not a function
  2. Node.JS 学习路线图
  3. Cisco 2900 series添加VWIC2-1MFT-G703板卡
  4. smarty+php+ajax 简单无刷新分页
  5. 基于jquery的上传插件Uploadify 3.1.1在MVC3中的使用
  6. Java多线程初学者指南(12):使用Synchronized块同步变量
  7. ASP.NET页面的处理过程完全版_AX
  8. MySQL高级 - InnoDB特性
  9. Nacos配置管理-配置热更新
  10. Nginx的error_page指令