我正在尝试创建一个将更新我的产品数量列的查询。当客户签出时,他们会在我的订单表中创建一行,从那里为每个购买的商品创建一行订单。
我有三个包含以下列的表
我希望查询看起来像这样,这是我到目前为止的。
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'
我还是一个初学者,我很欣赏正确方向的推动,谢谢。 如果需要任何其他信息,请告诉我。
答案 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,你可以做你想要的