为了解释这个问题,我刚刚在下面概述了一个示例情况。
OrderRows
ID|OrderNumber|ProductNumber|Quantity|Done
1 |10 |100 |1 |no*
2 |10 |101 |1 |no
3 |10 |100 |4 |no*
*具有相同的产品编号
Stock
ProductNumber|Quantity
100 |5
101 |1
UPDATE OrderRows
INNER JOIN Stock ON Stock.ProductNumber=OrderRows.ProductNumber
SET Done='yes'
,Stock. Quantity = Stock. Quantity -OrderRows. Quantity
WHERE OrderNumber='100' AND Done='no'
该表的结果Stock
将如下所示。
ProductNumber|Quantity
100 |4
101 |0
订单行已正确更新。但是对于第三行,Stock 没有被调整。这是因为第三行订单的产品编号与第一行订单相同。问题是,我该如何解决这个问题?