【发布时间】:2017-12-13 18:57:13
【问题描述】:
我正在尝试创建一个查询来更新我的产品数量列。当客户结账时,他们会在我的订单表中创建一行,然后在 orderdetails 中为所购买的每件商品创建一行。
我有三个包含以下列的表格
- 订单(ID、数量)
- orderdetails(ID、OrderID、ProductID、Quantity)“OrderID 和 ProductID 是外键”
- 产品 (ID)
我希望查询看起来像这样,这是我目前所拥有的。
UPDATE products SET Quantity = Quantity - orderdetails.Quantity INNER JOIN orderdetails ON products.ID = orderdetails.ProductID WHERE orderdetails.OrderID = orders.ID
或
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 - 'field list' 中的未知列 'orderdetails.Quantity'
我仍然是初学者,希望能在正确的方向上轻推一下,谢谢。 如果需要任何其他信息,请告诉我。
【问题讨论】:
-
我注意到您删除了 sql-server 标记。我应该删除我的答案还是在 mysql 中工作?
-
您好感谢您帮助我。我以 104 为例,因为它存在于我的数据库中,稍后将替换为会话变量。我已尝试过您的查询,但收到了语法错误,目前正在尝试解决。他们看起来应该为你工作。我发现的唯一错误是 ProductId 应该是 ProdcutID。