多表更新
在多表 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
表中的数量将增加。