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两个字段。

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

相关文章推荐

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

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

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

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

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

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

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

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

SQL语句多表联合查询

本周之前,对于数据库的使用仅限于简单的增删改查(insert、delete、updata、select),而这一周由于工作需要,对一些sql函数、sql语句多表联合查询、T-SQL语句基本语法、存储过...

oracle数据库:update更新多表总结

总体原则:1)更新的时候一定要加where条件,否则必然引起该字段的所有记录更新                    2)跨表更新时,set和where时,尽量减少扫描次数,从而提高优化 ...

【SQL】使用一条INSERT语句完成多表插入

这是一条颠覆常规的插入方法,一条INSERT语句可以完成向多张表的插入任务。小小地展示一下这种插入方法。 1.创建表T并初始化测试数据,此表作为数据源。 sec@ora10g> create ...

sql查询语句_多字段分类汇总_多表合并

一、最初(最简单的入门实例,单个分类汇总) 1,查询语句/*药品费用分科室汇总*/ select c.sksxx02,sum(nvl(b.nfyxx06,0))         from yy...
  • k486
  • k486
  • 2011-08-07 18:42
  • 11754
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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