国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql跨表更新 多表update sql語句總結

2020-01-18 23:53:11
字體:
來源:轉載
供稿:網友
假定我們有兩張表,一張表為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兩個字段。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台东市| 稻城县| 红安县| 禹城市| 鄂托克前旗| 华亭县| 阜南县| 沈丘县| 崇仁县| 集安市| 图木舒克市| 永嘉县| 贺兰县| 桐庐县| 汶川县| 平顶山市| 互助| 申扎县| 阳原县| 大庆市| 亳州市| 石家庄市| 读书| 大竹县| 临沂市| 光泽县| 邯郸市| 江达县| 上林县| 克山县| 萨迦县| 龙泉市| 蓬溪县| 沽源县| 仙游县| 海伦市| 固安县| 景洪市| 三原县| 汶上县| 阜新市|