如何在同一个表中选择一个值作为每行更新的值

abu*_*ker 4 sql t-sql

我有一个像这样的列的表结构

  • [ID]
  • [名称]
  • [的ParentId]
  • [父母名字]

父项包含在同一个表中,我想使用如下语句填充父名列:

UPDATE Table
   SET ParentName = (select Name  
                      from Table 
                     where Id = ParentId)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,所有ParentNames都设置为null.思考?

End*_*ssa 5

我会同意这个update from说法.

UPDATE tb
SET
    tb.ParentName = parent.Name
FROM Table tb
INNER JOIN Table parent ON parent.Id = tb.ParentId
Run Code Online (Sandbox Code Playgroud)

这是特定于T-SQL的,但它应该可以很好地工作.