Mysql跨表更新 多表update sql語句總結
假定我們有兩張表,一張表為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
另外一種方法是使用inner join然後更新:
複製程式碼 程式碼如下:
UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8
WHERE p.dateCreated
另外我們也可以使用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
兩張表做關聯,更新了ProductPrice表的price欄位和Product表欄位的dateUpdate兩個欄位。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/75/viewspace-2803987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL -update語句流程總結MySql
- MySQL基本sql語句總結MySql
- MySql與Sql Server Update語句MySqlServer
- ORACLE多表關聯UPDATE語句Oracle
- ORACLE多表關聯UPDATE 語句Oracle
- SQL單表查詢語句總結SQL
- 【SQL】10 SQL UPDATE 語句SQL
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- Oracle\MS SQL Server的資料庫多表關聯更新UPDATE與多表更新OracleSQLServer資料庫
- Sql Server系列:Update語句SQLServer
- SQL update select語句SQL
- 多表查詢建表語句
- 手擼Mysql原生語句--多表MySql
- SQL語句規範總結SQL
- sql語句學習總結SQL
- SQL語句使用總結(一)SQL
- MYSQL 常用sql語句小結MySql
- mysql 查詢建表語句sqlMySql
- MySql相關語句總結MySql
- MySql常用操作SQL語句彙總MySql
- MySQL的update語句避坑MySql
- SQL語句查詢表結構SQL
- mysql alter語句用法總結大全MySql
- MyCat不支援的SQL語句總結SQL
- mysql支援跨表delete刪除多表記錄MySqldelete
- Sql建表語句SQL
- sql 建表語句SQL
- sql語句建立表SQL
- MySql 常用Sql語句MySql
- Oracle多表插入語句Oracle
- 【SQL】使用一條INSERT語句完成多表插入SQL
- MySQL 52個SQL效能優化策略SQL語句彙總MySql優化
- Sql server 的update語句的新認識SQLServer
- mysql建表常用sql語句個人經驗分享MySql
- mysql 語句不能update的解決辦法MySql
- MySQL 多表更新的限制MySql
- MySQL複製表結構和內容到另一張表中的SQL語句MySql
- 複製表結構和資料SQL語句SQL