小编Geo*_*off的帖子

内部联接的SQL Server更新

我有3个表(简化):

 tblOrder(OrderId INT)  
  tblVariety(VarietyId INT,Stock INT)  
  tblOrderItem(OrderId,VarietyId,Quantity INT)
Run Code Online (Sandbox Code Playgroud)

如果我下订单,我会使用以下方式降低库存水平:

UPDATE tblVariety  
SET tblVariety.Stock = tblVariety.Stock - tblOrderItem.Quantity  
FROM tblVariety  
INNER JOIN tblOrderItem ON tblVariety.VarietyId = tblOrderItem.VarietyId  
INNER JOIN tblOrder ON tblOrderItem.OrderId = tblOrder.OrderId  
WHERE tblOrder.OrderId = 1
Run Code Online (Sandbox Code Playgroud)

一切正常,直到tblOrderItem中有两行,同一个OrderId具有相同的VarietyId.在这种情况下,只有一行用于库存更新.似乎在某种程度上在那里做了一个GROUP BY VarietyId.

任何人都能解释一下吗?非常感谢.

sql t-sql join sql-server-2005

25
推荐指数
2
解决办法
7万
查看次数

标签 统计

join ×1

sql ×1

sql-server-2005 ×1

t-sql ×1