我的更新查询 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
);