mysql 多表 update sql语句总结

原创 2016年05月31日 22:59:57

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法

在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。  如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次...

MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?

项目中,评论数,关注数等数据,是实时更新的。+1,-1 这种。 有的时候,可能统计不准确。 需要写一个统计工具,更新校准下。 用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了。...

python mysql中不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。

例: 首先新建表,插入值:DROP TABLE IF EXISTS table_score_one;CREATE TABLE table_score_one ( id INT (10) NO...

SQL Update多表联合更新的方法

SQL Update多表联合更新的方法 http://blog.csdn.net/hsg77/article/details/7245854 (1) sqlite 多表更新方法 //-------...

sql 多表 3表4联合查询语句

  • 2015年11月30日 16:55
  • 746B
  • 下载

MySQL中Update、select联用操作单表、多表,及视图与临时表的区别

一、MySQL中使用从表A中取出数据来更新表B的内容: 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不要显示的出现select关键字 u...

Mysql跨表更新,删除 多表update,delete

1.多表更新       假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段P...

Mysql删除多表及多表记录sql语句

Mysql删除多表及多表记录sql语句

Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例

Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql 多表 update sql语句总结
举报原因:
原因补充:

(最多只允许输入30个字)