【原创】 MySql链表更新
栏目:PHP  作者:隆航  阅读:(196)

假定我们有两张表

一张表为 Product 表存放产品信息产品价格列 Price 

一张表是 ProductPrice 表 表存也放产品信息产品价格列 Price 


我们要将 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 < '2016-12-22'


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

复制代码代码如下:


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


另外我们也可以使用left join来做多表update,

如果ProductPrice表中没有产品价格记录的话,将Product表的onsale字段置为1


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


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


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 < '2016-12-22'


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




昵称
邮箱
域名
  记住 通知博主
验证码

  程序相关

站点版本:青春博客-V 2.1.0

开源版本:青春博客-Beta v2.0

 下载  在线支付  在线工具  在线音乐

  随机文章