【发布时间】:2019-05-26 18:22:21
【问题描述】:
我有一张如下表
表 1
Id UserId Type Value
1 AAA companyid 123
2 AAA branchid
3 BBB companyid 124
4 BBB branchid
5 CCC companyid 125
6 CCC branchid
和表2
BranchId CompanyId Name
1 123 RedBranch
2 123 YellowBranch
3 123 GreenBranch
4 124 SouthBranch
5 125 NorthBranch
我需要使用相同 UserId 的 Type = 'companyid' 中的值更新 TABLE1 WHERE Type = 'branchid' 中的类型。一旦我有了正确的 'companyid',我想使用以下 SELECT 从 TABLE2 中获取 TOP BranchId
SELECT TOP 1 Id
FROM TABLE2
WHERE CompanyId = (correct companyid from TABLE1)
ORDER BY Id DESC
如何在一个更新语句中实现这一点?
【问题讨论】:
-
您的意思是您实际上想要使用表 2 填写表 1 中的空白值?
-
是的,但是从 TABLE2 中获取 TOP 对应的 id。因此,对于 CompanyId 123,我希望 TABLE1 中的 branchid 用户 BBB 为 3
-
对于 CompanyID = 123,有 3 个分支(红色、黄色和绿色)。应该选择哪一个来更新 TABLE1 中的分支?
-
编辑了最后一条评论来解释。应该是 3
标签: sql sql-server sql-update