亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL,用一個查詢更新多個表

MySQL,用一個查詢更新多個表

牛魔王的故事 2019-07-02 17:21:05
MySQL,用一個查詢更新多個表我有一個更新三個表的函數,但是我使用三個查詢來執行這個操作。我希望使用一種更方便的方法來進行良好做法。如何用一個查詢更新MySQL中的多個表?
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

UPDATE t1

INNER JOIN t2 ON t2.t1_id = t1.id

INNER JOIN t3 ON t2.t3_id = t3.id

SET t1.a = 'something',

    t2.b = 42,

    t3.c = t2.c

WHERE t1.a = 'blah';

要查看要更新的內容,可以將其轉換為SELECT語句,例如:


SELECT t2.t1_id, t2.t3_id, t1.a, t2.b, t2.c AS t2_c, t3.c AS t3_c

FROM t1

INNER JOIN t2 ON t2.t1_id = t1.id

INNER JOIN t3 ON t2.t3_id = t3.id

WHERE t1.a = 'blah';

使用與其他答案相同的表的示例:


SELECT Books.BookID, Orders.OrderID,

    Orders.Quantity AS CurrentQuantity,

    Orders.Quantity + 2 AS NewQuantity,

    Books.InStock AS CurrentStock,

    Books.InStock - 2 AS NewStock

FROM Books

INNER JOIN Orders ON Books.BookID = Orders.BookID

WHERE Orders.OrderID = 1002;


UPDATE Books

INNER JOIN Orders ON Books.BookID = Orders.BookID

SET Orders.Quantity = Orders.Quantity + 2,

    Books.InStock = Books.InStock - 2

WHERE Orders.OrderID = 1002;


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 700 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號