将SELECT转换为更新语句

3 sql sql-server

SELECT t1.status, t3.guid, t3.objectID
FROM Table1 t1, Table2 t2, Table3 t3
WHERE t2.ID = t3.ID
   AND t1.ID = t2.ID
   AND t3.Guid IN ('', '', '')
Run Code Online (Sandbox Code Playgroud)

如何将其转换为我设置的更新语句t1.status = 1

Guf*_*ffa 7

我首先将它转换为使用连接而不是"经典连接":

select t1.status, t3.guid, t3.objectID
from Table1 t1
inner join Table2 t2 on t2.ID = t1.ID
inner join Table3 t3 on t3.ID = t2.ID
where t3.Guid in ('', '', '')
Run Code Online (Sandbox Code Playgroud)

然后你可以直接翻录select语句并对其进行更新和设置语句:

update t1
set status = 1
from Table1 t1
inner join Table2 t2 on t2.ID = t1.ID
inner join Table3 t3 on t3.ID = t2.ID
where t3.Guid in ('', '', '')
Run Code Online (Sandbox Code Playgroud)


And*_*are 2

尝试这样的事情:

update Table1
set status = 1
from Table1 t1
    inner join Table2 t2 on t1.ID = t2.ID
    inner join Table3 t3 on t2.ID = t3.ID
where t3.Guid IN ('', '', '');
Run Code Online (Sandbox Code Playgroud)