首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL Self Join更新

SQL Self Join更新
EN

Stack Overflow用户
提问于 2021-07-22 04:24:58
回答 1查看 54关注 0票数 0

我需要通过自我联接来程序化地更新表。使用SQL Server 2019。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE Sect
(
     Section_Id INT, 
     Locale VARCHAR(10), 
     Record_Id INT, 
     Section_Id_1 INT
);
   
INSERT INTO Sect (Section_Id, Locale, Record_Id, Section_Id_1)
VALUES
(100, 'US', 1, Null),
(101, 'CA', Null, 100),
(101, 'MD', Null, 100)

目标是用匹配的Record_ID更新Record_Id的空值,其中Section_Id_1等于Section_ID

这是预期的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
100|US|1|Null
101|CA|1|100
101|MD|1|100

我想我已经接近了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE t1 
SET Record_Id = t2.Record_Id
FROM Sect t1
INNER JOIN Sect t2 ON t1.Section_Id_1 = t2.Section_Id
WHERE t1.Record_Id IS NULL

感谢大家的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-07-22 05:05:27

我不熟悉SQL Server 2019。但是我认为你不需要使用INNER JOIN,试试这个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update
  Sect t1
set
  Record_Id = (select t2.Record_Id 
               from Sect t2 
               where t2.Section_ID = t1.Section_Id_1 
                 and t2.Record_Id is not null 
               limit 1)
where Record_Id is null
  and Section_Id_1 is not null 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68479174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文