SQL Update查询集数量

时间:2017-12-13 18:57:13

标签: php mysql

我正在尝试创建一个将更新我的产品数量列的查询。当客户签出时,他们会在我的订单表中创建一行,从那里为每个购买的商品创建一行订单。

我有三个包含以下列的表

  1. 订单(ID,数量)
  2. orderdetails(ID,OrderID,ProductID,Quantity)“OrderID和ProductID是外键”
  3. 产品(ID)
  4. 我希望查询看起来像这样,这是我到目前为止的。

    UPDATE products SET Quantity = Quantity - orderdetails.Quantity INNER JOIN orderdetails ON products.ID = orderdetails.ProductID WHERE orderdetails.OrderID = orders.ID

    OR

    UPDATE products SET Quantity = Quantity - orderdetails.Quantity WHERE ID IN (SELECT ProductID FROM orderdetails WHERE OrderID IN (SELECT ID FROM orders WHERE ID = 104))

    MySQL错误是#1054 - “字段列表”中的未知列'orderdetails.Quantity'

    我还是一个初学者,我很欣赏正确方向的推动,谢谢。 如果需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

declare @orderID int =104 -- you can set anywhere

update products set 
Quantity = Quantity - ordtl.Quantity from products p
inner join orderdetails ordtl on ordtl.ProductID = p.ID
inner join orders o on o.ID = ordtl.OrderID 
where o.ID = @orderID

- 如果你知道订单ID,你可以做你想要的