1. 程式人生 > >mysql 多表聯合更新

mysql 多表聯合更新

        在實際工作中我們經常碰到一些業務要更新多張有關聯的表資料,如果單獨更新每張表,不僅降低效率而且容易出錯,所以在mysql 4.0.4 開始支援多個表的update操作。        假設有兩張表 table1 、table2 關聯關係為 table1.t2_id = table2.t1_id。1. 將table1 中價格更新為table2價格的80%。
UPDATE table1 t1, table2 t2
SET t1.price  = t2.price * 0.8
WHERE t1.t2_id = t2.t1_id

2.將table1 中價格更新為table2價格的80%,同時更新 table2 中update_date 。

UPDATE 
  table1 t1 
  INNER JOIN table2 t2 
    ON t1.t2_id = t2.t1_id 
  SET t1.price = t2.price * 0.8,
  t2.update_date = NEW ()
注意:多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。