从特定 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
。
我有以下 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
。