多表更新
在多表 UPDATE
中,它更新滿足條件的每個指定表中的行。即使多次匹配條件,每個匹配行也會更新一次。
在多表 UPDATE
中,不能使用 ORDER BY
和 LIMIT
。
多表 UPDATE
的語法是,
UPDATE [LOW_PRIORITY] [IGNORE]
table1, table2, ...
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions]
例如,考慮兩個表,products
和 salesOrders
。如果我們減少了已經放置的銷售訂單中特定產品的數量。然後我們還需要在 products
表的庫存欄中增加該數量。這可以在單個 SQL 更新語句中完成,如下所示。
UPDATE products, salesOrders
SET salesOrders.Quantity = salesOrders.Quantity - 5,
products.availableStock = products.availableStock + 5
WHERE products.productId = salesOrders.productId
AND salesOrders.orderId = 100 AND salesOrders.productId = 20;
在上面的例子中,數量'5’將從 salesOrders
表減少,並且根據 WHERE
條件,products
表中的數量將增加。