使用引用表 SQL Server 更新表中的多条记录
Posted
技术标签:
【中文标题】使用引用表 SQL Server 更新表中的多条记录【英文标题】:Update multiple records in table by using a reference table SQL Server 【发布时间】:2021-01-11 07:05:43 【问题描述】:我正在尝试通过使用来自其他两个表的引用来更新 SQL 中的表。我需要使用来自Table A
的记录的ID
更新Table C
,但仅限于Temp Table B
的列存在于Table A
中的地方
表 A
ID | ReferenceNumber |
---|---|
1 | 123 |
2 | 321 |
3 | 213 |
4 | 413 |
临时表 B
ID | ExtractedNum |
---|---|
1 | 213 |
2 | 413 |
3 | 321 |
4 | 123 |
预期结果
表 C
TableA_ID | TableB_ID |
---|---|
3 | 1 |
4 | 2 |
2 | 3 |
1 | 4 |
我尝试了几个不同的查询,但没有一个按我需要的方式工作:
UPDATE table_c
SET
table_c.tablea_id = a.id -- int
FROM table_a a
WHERE table_c.tableb_id =
(
SELECT t.Id,
t.ExtractedNum
FROM #tempTableB t,
table_a a2
WHERE t.ExtractedNum = a2.ReferenceNumber
);
【问题讨论】:
【参考方案1】:UPDATE c
SET c.tablea_id=a.id
FROM tableC c INNER JOIN
tableA a ON a.id=c.tablea_id INNER JOIN
#tempTableB b ON b.ExtractedNum=a.ReferenceNumber
【讨论】:
以上是关于使用引用表 SQL Server 更新表中的多条记录的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server:交叉引用一个表中的多个列与另一个表中的多个列