Sql Server 等效的加入更新 Oracle



我的更新查询 SQL Server,如下所示:

Update Project set Name=Project.Name+' assignedTo '
FROM Project 
INNER JOIN EmployeeProject ON Project.ID = EmployeeProject.ProjectID 
INNER JOIN Employee ON EmployeeProject.EmployeeID = Employee.ID
WHERE (Employee.Name = N'Minion')

什么是等效的甲骨文查询。我的尝试如下:

Update (SELECT Project.Name as ProjectName,Employee.Name as EmpName
FROM Project 
INNER JOIN EmployeeProject ON Project.ID = EmployeeProject.ProjectID 
INNER JOIN Employee ON EmployeeProject.EmployeeID = Employee.ID  
where Employee.Name=N'Minion' 
) T 
set T.ProjectName=' somting'

但是给我错误无法修改映射到非键保留表的列。SQL服务器工作正常。

你只需要exists

update Project p
set Name = p.Name+' assignedTo '
where exists (select 1
from EmployeeProject join 
Employee e
on ep.EmployeeID = e.ID
where e.Name = N'Minion' and p.ID = ep.ProjectID 
);