写出更新语句,将所有获取奖金的员工当前的(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)