更新减去数量 - SQL

时间:2017-10-14 05:27:13

标签: php sql database

我有以下数据库结构

Table product(其中包含我的产品信息,包括股票)

  • PROD_ID
  • PROD_NAME
  • prod_desc
  • prod_price
  • 股票

表格store_orders_item(每次客户从我的网站购买时都会更新)

  • ID
  • ORDER_ID
  • sel_prod_id
  • sel_prod_price
  • sel_prod_qty

每当我在线进行销售并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'

1 个答案:

答案 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。