mysql跨库更新两个表_MySQL跨表更新多表updatesql语句总
countif函数例子
mysql语句多表查询笔记本电脑delete键在哪MySQL跨表更新⼀直是⼤家所关⼼的话题,本⽂介绍mysql多表 update在实践中⼏种不同的写法,需要的朋友可以参考下。
假定我们有两张表,⼀张表为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 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
e指数函数四则运算
SET pp.price = pp.price * 0.8, p.dateUpdate = CURDATE() WHERE p.dateCreated < '2004-01-01'
变量名中不能包括两张表做关联,更新了ProductPrice表的price字段和Product表字段的dateUpdate两个字段。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。