从特定 Select 语句 SQL 更新 Table

Update Table from Specific Select Statement SQL

我有以下 table:

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

我想用以下 select 语句更新 IDs 列:

SELECT a.ZONEID FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID

因此,IDs 列将填充上述 select 语句的结果。

结果应该是:

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

我尝试了以下 tsql:

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

但是执行时出现错误。太多参数结果,类似这样。

请指教
谢谢。

您可以将联接与 UPDATE 查询结合使用

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

您可以使用相关子查询:

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

子查询中不需要 JOIN