写出更新语句,将所有获取奖金的员工当前的(salaries.to_date='9999-01-01')薪水增加10%。
(emp_bonus里面的emp_no都是当前获奖的所有员工)
create table emp_bonus (emp_no  int not null,btype  smallint not null);
CREATE TABLE salaries (emp_no int(11) NOT NULL,salary int(11) NOT NULL,from_date date NOT NULL,to_date date NOT NULL, PRIMARY KEY (emp_no,from_date)); 
建立一个合成表,利用join 语句,实现将salaries 和emp_bonus 以emp_no 作为key进行联结,这样新建立的表就是将有奖金的员工号从工资表中筛选出来。
UPDATE salaries AS s JOIN emp_bonus AS b ON s.emp_no = b.emp_no SET salary = 1.1*salary WHERE salaries.to_date='9999-01-01'
子查询方法,主要在salaries表中进行相应的操作,最后在子查询中联结emp_bonus
UPDATE salaries
SET salary = 1.1*salary
WHERE salaries.to_date='9999-01-01'
    and salaries.emp_no in (SELECT emp_no FROM emp_bonus)
京公网安备 11010502036488号