从特定选择语句SQL更新表

时间:2018-06-20 03:50:06

标签: sql tsql sql-server-2014

我有下表:

makemigrations

我想用以下IDs ZoneID ChildID ParentID -------------------------------------------- null 1 36000 36000 null 1 36000 36000 null 2 37000 37000 语句更新IDs列:

select

因此,SELECT a.ZONEID FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID 列将填充以上IDs语句的结果。

结果应为:

select

我尝试了以下tsql:

IDs     ZoneID     ChildID     ParentID
--------------------------------------------
1       1          36000       36000
1       1          36000       36000
2       2          37000       37000

但是执行错误时出现错误。争论的结果太多了,像这样。

请咨询。
谢谢。

2 个答案:

答案 0 :(得分:2)

您可以将join与UPDATE查询一起使用

Update Table1
set IDs = a.ZONEID 
FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID

答案 1 :(得分:1)

您可以使用相关子查询:

Update Table1
    set IDs = (SELECT a.ZONEID FROM Table1 a WHERE a.ParentID = Table1.ChildID);

子查询中不需要JOIN