Order details表包含catalog id及其quantity

Catalog具有特定商品的价格。

对于一个订单,他或她只能选择2个项目。必须使用order id为特定订单生成所选项目的总成本并将其存储在订单表中。

my catalogs中的列是id, name, price

order details中的列是id, order_id, catalog_id, quantity

orders表中的列是id, customer_id, total_cost

如何使用mysql中的3个表来计算总成本?

最佳答案

尝试这个。

SET SQL_SAFE_UPDATES = 0;
UPDATE orders
INNER JOIN (
SELECT order_id, SUM(quantity*price) total_price
FROM order_details
INNER JOIN my_catalogs
ON order_details.catalog_id = my_catalogs.id
GROUP BY order_id
) d
ON order.id = d.order_id
SET orders.total_cost = d.total_price;
SET SQL_SAFE_UPDATES = 1;

10-07 12:34