SQL-根据其他人的表内容更新表行

时间:2018-11-13 21:47:06

标签: sql sql-server tsql

我有一个名为#tempTab1的临时表,其中包含以下列:

UserId, GroupId, Quantity

然后,我还有另一个表#tempTab2,该表具有相似的列:

IdUser, IdGroup, ItemQuantity

我想使用第二个表格的ItemQuantity列中的数据更新第一个表格的“数量”列。

我尝试使用以下查询进行操作:

UPDATE #tempTab1
SET #tempTab1.Quantity = #tempTab2.ItemQuantity
WHERE #tempTab1.UserId = #tempTab2.IdUser 
  AND #tempTab1.GroupId = #tempTab2.IdGroup

我得到的是

  

子查询返回了多个值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

最好的处理方式是什么?预先谢谢你

1 个答案:

答案 0 :(得分:0)

您需要一个JOIN

UPDATE t1
   SET Quantity = t2.ItemQuantity
FROM #tempTab1 t1 JOIN
     #tempTab2
     ON t1.UserId = t2.IdUser AND t1.GroupId = t2.IdGroup;
相关问题