Mysql跨表更新 多表update sql语句总结

假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。
在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式:

UPDATE product p, productPrice pp
SET pp.price = pp.price * 0.8
WHERE p.productId = pp.productId
AND p.dateCreated < '2004-01-01' 

另外一种方法是使用inner join然后更新:

UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8
WHERE p.dateCreated < '2004-01-01' 

另外我们也可以使用left outer join来做多表update,比方说如果ProductPrice表中没有产品价格记录的话,将Product表的isDeleted字段置为1,如下sql语句:

UPDATE product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
SET p.deleted = 1
WHERE pp.productId IS null 

另外,上面的几个例子都是两张表之间做关联,但是只更新一张表中的记录,其实是可以同时更新两张表的,如下sql:

UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8,
p.dateUpdate = CURDATE()
WHERE p.dateCreated < '2004-01-01' 

两张表做关联,更新了ProductPrice表的price字段和Product表字段的dateUpdate两个字段。

原文地址:https://www.jb51.net/article/32648.htm

Mysql跨表更新 多表update sql语句总结相关推荐

  1. Mysql根据身份证更新出生日期及年龄sql语句

    最近一个客户的系统要升级,并要求在数据库基本信息中新增年龄和出生日期字段信息. 我心想这么"难" 报价一定要高一点了 于是我废了九牛二虎之力写了一条sql语句,将mysql数据库新 ...

  2. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...

    在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...

  3. mysql 把一个字段的值_mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法...

    需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_fold ...

  4. mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句

    MySQL多表关联数据同时删除sql语句 有需要的朋友可参考. DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 代码如下 1 delete from t1 wher ...

  5. 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?

    编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...

  6. Oracle数据库表连接查询并分页SQL语句提示未明确定义列

    Oracle数据库表连接查询并分页SQL语句提示未明确定义列 两张表中的字段: t_product t_category product_id category_id product_name cat ...

  7. MySQL中特别实用的几种SQL语句

    MySQL中特别实用的几种SQL语句 文章目录 MySQL中特别实用的几种SQL语句 1. 插入或替换 2. 插入或更新 3. 插入或忽略 4. 指定数据快照或备份 5. 写入查询结果集 6. 强制使 ...

  8. Mysql学习笔记(基础)基础sql语句详细记录

    数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...

  9. JavaWEB01:MySQL基础——数据库相关概念、MySQL安装和配置、基础的SQL语句

    JavaWEB01:MySQL基础--数据库相关概念.MySQL安装和配置.基本的SQL语句 JavaWEB02:MySQL高级--约束.数据库设计.多表查询.事务 JavaWEB03:JDBC Ja ...

  10. 【MySQL】全国省市县三级联动SQL语句—区县SQL(三)

    目录 ->区县信息表数据 [MySQL]全国省市县三级联动SQL语句-建表和省份SQL(一)_路遥叶子的博客-CSDN博客全国省市县三级联动SQL语句-建表和省份SQL(一)https://bl ...

最新文章

  1. Redis 高级特性(2)—— 发布 订阅模式
  2. 盐为什么能使冰熔化得更快
  3. 定时器0工作方式2,定时1s
  4. html5 通信方式,(原生js页面通信)关于html5的PostMessage的用法总结
  5. abp vnext2.0核心组件之.Net Core默认DI组件切换到AutoFac源码解析
  6. UTC时间与当地时间的转换关系?
  7. 读书笔记∣写给大家看的设计书
  8. MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)
  9. IDL代码实现湖泊水体范围遥感提取
  10. PHPStorm/IntelliJ IDEA 设置SFTP
  11. 地籍测绘成图软件南方cass9.0支持AutoCad2010【安装文件和视频教程】
  12. python——设置渐变色
  13. 硬件算法与软件算法实现区别通俗易懂
  14. 数据库设计 资源表与资源收藏表的设计
  15. 网络是怎样连接的学习笔记——从网线到网络设备
  16. WKWebView 播放下载的本地mp4文件
  17. Mac 时间机器 Time Machine 备份速度太慢的解决方法 (加速备份命令)
  18. 一周学习小总结,MySQL进阶~
  19. 我的咖啡服务器维护,我的咖啡厅MyCafe文字版全食谱配方详解
  20. 前端常见问题以及处理方式 - - - (二)前端路由的两种模式和区别

热门文章

  1. Reversing Encryption(Reverse函数的应用)
  2. Reverse Linked List 反转链表
  3. RSA 数字签名 免密码登录
  4. 轻松,高效,正确的写出一个爬虫?看这一篇就够了!踩过无数坑后总结的爬虫编写流程
  5. 计算机应用技术作业答案,计算机应用与技术网上作业题参考答案20121109
  6. php 多任务,PHP并行多任务研究(笔记)
  7. 万分之二用百分之怎么表示_怎么腐熟猪粪做有机肥
  8. html form表单提交验证
  9. 文本比较算法Ⅸ——Primal-Dual算法
  10. 连接mongoDB根据ObjectID写入json数据(初步)