我有两个表emp和dept,并且当部门名称为“ Software Engineer”时,我想更新emp表中的薪水以增加10000

时间:2018-11-30 12:22:54

标签: sql-update inner-join

我有两个表emp和dept,并且当部门名称为“ Software Engineer”时,我想更新emp表中的薪水以增加10000。emp表没有dep名称。

我已经尝试过此查询:

update emp 
set salary = salary + 10000 
where exists (select d.depatment_name, e.salary  
              from emp e  
              join department d on e.dep_id = d.department_id 
              where dep_name = 'Software Engineer');

select * from emp;

但是它会更新所有行的薪水。

1 个答案:

答案 0 :(得分:0)

我认为该联接无法正常工作。请先选择部门,然后再离开员工。另外,dept_name需要“ d”。表别名。

update emp 
set salary = salary + 10000 
where exists (select d.depatment_name, e.salary  
              from department d
              left join emp e                
              on e.dep_id = d.department_id 
              where d.dep_name = 'Software Engineer');

select * from emp;