我有两个表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;
但是它会更新所有行的薪水。
答案 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;