我有以下数据库结构
Table product
(其中包含我的产品信息,包括股票)
表格store_orders_item
(每次客户从我的网站购买时都会更新)
每当我在线进行销售并store_orders_items
更新时,我都需要这样做,这会减少桌面上销售的产品的库存字段product
我认为我需要使用下面的代码,加上某种连接或子查询来根据prod_id
更新我的产品表,但我无法弄清楚如何。
UPDATE product SET stock = stock - (SELECT SUM(sel_prod_qty) FROM store_orders_items);
我也尝试过:
UPDATE product
SET stock = stock - (SELECT s.sel_prod_qty, s.sel_prod_id, p.prod_id
FROM store_orders_items as s left join product as p ON
s.sel_prod_id=p.prod_id WHERE order_id=(SELECT MAX(order_id) from orders_number));
得到了这个错误: “您无法在FROM子句”
中为更新指定目标表'product'答案 0 :(得分:0)
您必须使用加入更新,例如在MySQL中:
UPDATE
product p
INNER JOIN
store_orders_item s
ON
p.prod_id = s.sel_prod_id
SET
p.stock = p.stock - s.sel_prod_qty
WHERE
s.order_id = NNNNN
其中 NNNNN 是刚刚插入的订单的ID。