- ~
獲取當前(to_date='9999-01-01')薪水第二多的員工的emp_no以及其對應的薪水salary
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
));spa
select emp_no,salary from salaries where to_date = '9999-01-01' order by salary desc limit 1,1;
題目描述
查找當前薪水(to_date='9999-01-01')排名第二多的員工編號emp_no、薪水salary、last_name以及first_name,不許使用order by
CREATE TABLE employees
(emp_no
int(11) NOT NULL,birth_date
date NOT NULL,first_name
varchar(14) NOT NULL,last_name
varchar(16) NOT NULL,gender
char(1) NOT NULL,hire_date
date NOT NULL,
PRIMARY KEY (emp_no
));
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
));3d
【注意】看看討論連接,裏面有個MySQL的坑 https://www.nowcoder.com/profile/1989208/codeBookDetail?submissionId=20473665 我不知道WebSQL上求max(salaries)會把全部的最高工資顯示出來,仍是隻顯示一個, 可是在MySQL中,只顯示一個,這樣若是第二高的工資人數有多個的話,上述方法會漏掉其餘人, select e.emp_no, salary, last_name, first_name from employees as e inner join salaries as s where e.emp_no = s.emp_no and s.to_date='9999-01-01' and salary = (select max(salary) from salaries where salary < (select max(salary) from salaries)) 這個是個人方案。