MySQL跨表更新一直是每个人都关心的话题. 本文介绍了在实践中编写mysql多表更新的几种不同方法. 需要它的朋友可以参考它.
假设我们有两个表,一个表是用于产品信息的Product表,其中包含产品价格列Price;另一个表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为价格表中价格字段的80%.
在MySQL中,我们有几种方法可以做到这一点mysql 连表 update,一种是更新table1 t1,table2 ts ...:
复制代码,代码如下:
更新产品p,产品价格pp
SET pp.price = pp.price * 0.8
其中p.productId = pp.productId
AND p.dateCreated
另一种方法是使用内部联接,然后更新:
复制代码,代码如下:
更新产品p
内部联接productPrice pp
打开p.productId = pp.productId
SET pp.price = pp.price * 0.8
p.dateCreated
此外,我们可以使用左外部联接进行多表更新. 例如,如果ProductPrice表中没有产品价格记录,则将Product表的isDeleted字段设置为1,如下所示:
复制代码,代码如下:
更新产品p
左联接productPrice pp
打开p.productId = pp.productId
SET p.deleted = 1
其中pp.productId为null
此外,以上示例在两个表之间相关,但是仅更新一个表中的记录mysql 连表 update,实际上,您可以同时更新两个表,如下所示: sql:
复制代码,代码如下:
更新产品p
内部联接productPrice pp
打开p.productId = pp.productId
SET pp.price = pp.price * 0.8,
p.dateUpdate = CURDATE()
p.dateCreated
这两个表相关,并且ProductPrice表的price字段和Product表的dateUpdate字段已更新.
本文标题: mysql跨表更新多表更新sql语句摘要
本文地址:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-148709-1.html