Mysql跨表更新 多表update sql语句总结
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语句总结相关推荐
- Mysql根据身份证更新出生日期及年龄sql语句
最近一个客户的系统要升级,并要求在数据库基本信息中新增年龄和出生日期字段信息. 我心想这么"难" 报价一定要高一点了 于是我废了九牛二虎之力写了一条sql语句,将mysql数据库新 ...
- 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...
在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...
- mysql 把一个字段的值_mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法...
需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_fold ...
- mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句
MySQL多表关联数据同时删除sql语句 有需要的朋友可参考. DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 代码如下 1 delete from t1 wher ...
- 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?
编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...
- Oracle数据库表连接查询并分页SQL语句提示未明确定义列
Oracle数据库表连接查询并分页SQL语句提示未明确定义列 两张表中的字段: t_product t_category product_id category_id product_name cat ...
- MySQL中特别实用的几种SQL语句
MySQL中特别实用的几种SQL语句 文章目录 MySQL中特别实用的几种SQL语句 1. 插入或替换 2. 插入或更新 3. 插入或忽略 4. 指定数据快照或备份 5. 写入查询结果集 6. 强制使 ...
- Mysql学习笔记(基础)基础sql语句详细记录
数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...
- JavaWEB01:MySQL基础——数据库相关概念、MySQL安装和配置、基础的SQL语句
JavaWEB01:MySQL基础--数据库相关概念.MySQL安装和配置.基本的SQL语句 JavaWEB02:MySQL高级--约束.数据库设计.多表查询.事务 JavaWEB03:JDBC Ja ...
- 【MySQL】全国省市县三级联动SQL语句—区县SQL(三)
目录 ->区县信息表数据 [MySQL]全国省市县三级联动SQL语句-建表和省份SQL(一)_路遥叶子的博客-CSDN博客全国省市县三级联动SQL语句-建表和省份SQL(一)https://bl ...
最新文章
- Redis 高级特性(2)—— 发布 订阅模式
- 盐为什么能使冰熔化得更快
- 定时器0工作方式2,定时1s
- html5 通信方式,(原生js页面通信)关于html5的PostMessage的用法总结
- abp vnext2.0核心组件之.Net Core默认DI组件切换到AutoFac源码解析
- UTC时间与当地时间的转换关系?
- 读书笔记∣写给大家看的设计书
- MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)
- IDL代码实现湖泊水体范围遥感提取
- PHPStorm/IntelliJ IDEA 设置SFTP
- 地籍测绘成图软件南方cass9.0支持AutoCad2010【安装文件和视频教程】
- python——设置渐变色
- 硬件算法与软件算法实现区别通俗易懂
- 数据库设计 资源表与资源收藏表的设计
- 网络是怎样连接的学习笔记——从网线到网络设备
- WKWebView 播放下载的本地mp4文件
- Mac 时间机器 Time Machine 备份速度太慢的解决方法 (加速备份命令)
- 一周学习小总结,MySQL进阶~
- 我的咖啡服务器维护,我的咖啡厅MyCafe文字版全食谱配方详解
- 前端常见问题以及处理方式 - - - (二)前端路由的两种模式和区别