sql - SQL - 根据另一个表内容更新表行
问题描述
我有一个名为 #tempTab1 的临时表,其中包含以下列:
UserId, GroupId, Quantity
然后我有另一个表 #tempTab2 有类似的列:
IdUser, IdGroup, ItemQuantity
我想使用第二个表 ItemQuantity 列中的数据更新第一个表 Quantity 列。
我已经尝试使用以下查询来做到这一点:
UPDATE #tempTab1
SET #tempTab1.Quantity = #tempTab2.ItemQuantity
WHERE #tempTab1.UserId = #tempTab2.IdUser
AND #tempTab1.GroupId = #tempTab2.IdGroup
我得到的是
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
处理它的最佳方法是什么?先感谢您
解决方案
你需要一个JOIN
:
UPDATE t1
SET Quantity = t2.ItemQuantity
FROM #tempTab1 t1 JOIN
#tempTab2
ON t1.UserId = t2.IdUser AND t1.GroupId = t2.IdGroup;
推荐阅读
- swift - 在 Swift 5 中调用函数导致错误“表达式类型不明确,没有更多上下文”
- microsoft-graph-api - 为什么我可以订阅频道中的所有消息,但不能订阅用户的所有消息?
- docker - 无法通过 Chocolatey 卸载 Docker Desktop
- windows - Windows 注册表命令文件夹中的 --url -- 是什么意思?
- css - 如何显示行/行以使用 CSS 链接 2 个或更多元素?
- node.js - NodeJS 在没有 Express 的情况下获取 cookie
- sql - foreach 循环遍历 SQL 数据数组时出现 Powershell IComparable 错误
- ios - AzureIoTHubClient 包装器框架无法构建模块
- tensorflow2.0 - 给定一个输入并得到两个输出
- merge - Apache NiFi:MergeContent 无法正确合并文件