У меня есть две таблицы emp и dept, и я хочу обновить зарплату в таблице emp, чтобы она увеличилась на 10000, когда отдел называется «Инженер-программист» - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть две таблицы emp и dept, и я хочу обновить зарплату в таблице 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 голосов
/ 30 ноября 2018

Я думаю, что соединение не работает, как ожидалось.попробуйте сначала выбрать отдел, а затем оставить присоединение к сотрудникам.Кроме того, 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...