定我们有两张表,一张表为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两个字段。

mysql update多个表_mysql update 多表 (复制)相关推荐

  1. mysql取消外码约束_MySQL 关闭子表的外键约束检察方法

    准备: 定义一个教师表.一个学生表:在学生表中引用教师表ID create table teachers(teacherID int not null auto_increment primary k ...

  2. mysql pdo 插入没效果_MySQL分库分表后用PHP如何来完美操作

    当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那 分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间分库 1)按功能分 用户类库.商品类库.订单类库.日志类.统计类库... ...

  3. mysql如何修改学生表_MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范 ...

  4. mysql左连接去重查询_mysql之单表查询、多表查询

    mysql查询 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[,...,字段n])] values (数据1[,...,数据n])[, ...

  5. mysql重新命名表_MySQL重命名表

    在本教程中,您将学习如何使用MySQL RENAME TABLE语句和ALTER TABLE语句重命名表. MySQL RENAME TABLE语句简介 由于业务需求变化,我们需要将当前表重新命名为新 ...

  6. mysql 默认系统表_MySQL常用系统表大全(转)

    用来了解sql语句,触发器,存储过程怎么跑的 全文转自MySQL常用系统表大全 - xlxxcc的专栏 - CSDN博客​blog.csdn.net MySQL5.7 默认的模式有:informati ...

  7. 使用mysql内连接查询年龄_Mysql的连表查询

    若一个查询同时涉及到两个以上的表,称为连表查询 准备表 create table department( id int auto_increment PRIMARY KEY, name varchar ...

  8. mysql drop 几十g的表_MySQL Drop 大表的解决方案

    一 引子 在生产环境中,删除一个大文件,比如一个数十 G 或者上百 G 的文件是很耗时的. 本文介绍一个快速 DROP TABLE 的方法.使用本文提供的方法,不管该表数据量.占用空间有多大,都可以快 ...

  9. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

最新文章

  1. Failure [INSTALL_FAILED_ALREADY_EXISTS
  2. 如何配置FastReport.Net环境
  3. mysql数据压缩加密_MySQL 加密/压缩函数
  4. 笔试——查找重复数(杭州某准独角兽)
  5. [APP]- 找回Xcode7的代码折叠功能
  6. lock是悲观锁还是乐观锁_图文并茂的带你彻底理解悲观锁与乐观锁
  7. android开发(44) 使用了 SoundPool 播放提示音
  8. 广州爱立信java笔试题_爱立信笔试经历
  9. C++实现求解完美数算法
  10. 如何阅读Java源码?已收藏以备后用
  11. 系统可靠性分析与设计
  12. redis 错误 Error reply to PING from master: '-DENIED Redis is running in protected mode because prote
  13. 80%中国男人不敢主动和女人搭讪
  14. 计算机408考试题库百度云,2017年计算机408考研真题.pdf
  15. IOS 代码修改故事版中的自动布局参数
  16. Ubuntu1804 使用mondorescue 进行系统备份iso制作
  17. 精灵图案例-拼出自己名字
  18. Github: fatal: Unsupported SSL backend ‘“openssl”‘. Supported SSL backends: openssl schannel
  19. (Verilog)单周期CPU设计
  20. C语言计算正方体表面积

热门文章

  1. c语言里有js的预编译环节吗,C语言第十一讲,预处理命令.
  2. 电脑桌面归纳小窗口_电脑一分钟小技巧:如何将电脑设置为定时关机?
  3. python画烟花的代码_电脑怎么用代码画烟花?
  4. html伸缩布局,CSS3 伸缩布局(一)
  5. android menu自定义,Android提高之自定义Menu(TabMenu)实现方法
  6. 树莓派 摄像头 php,树莓派3 之 USB摄像头安装和使用
  7. VS Code 主题配置
  8. Haproxy 管控台介绍
  9. centos7以普通用户开机启动某个服务或者指定脚本
  10. idea出现 Error:(1, 16) java: 非法字符: '\u0a0d'