2017-07-06 61 views
0

我的更新查询SQL Server作为如下:SQL服务器相当于加入甲骨文更新

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') 

的是等效的Oracle query.My尝试如下:

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 Server服务器工作正常。

+0

@ a_horse_with_no_name可以为您而发帖回答 – decoder

回答

1

你只需要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 
      );