如何无需额外表即可更新SQL同表中关联父记录的子记录parentID值
无需额外辅助表的SQL实现方案
直接使用自连接更新即可完成需求,不需要创建额外的Helper表:
UPDATE tt_child SET tt_child.parentID = tt_parent.parentID FROM TestTable tt_child INNER JOIN TestTable tt_parent ON tt_child.parentRecord = tt_parent.record WHERE tt_child.parentID IS NULL AND tt_parent.parentID IS NOT NULL
补充说明
- 你提供的原有代码存在两处笔误:插入Parent_1的语句漏了单引号闭合,应为
'Parent_1';原有辅助表逻辑中误用了不存在的parentString字段,实际对应字段名为parentRecord,上述优化代码已修正相关错误。 - 该写法兼容SQL Server、MySQL、PostgreSQL等主流支持多表UPDATE语法的数据库,执行效率高于创建临时辅助表的方案,最终效果和你原有实现完全一致。
内容的提问来源于stack exchange,提问作者razzberry
相关产品推荐
相关产品推荐

