SQL(刷题)

查找时间最晚人的信息

方法1:select * from table where time = (select max(time) from table

方法2:select * from table order by time desc limit 1

LIMIT m,n : 表示从第m+1条开始,取n条数据;

LIMIT n : 表示从第0条开始,取n条数据,是limit(0,n)的缩写。

本题limit 2,1 表示从第(2+1)条数据开始,取一条数据,即入职员工时间排名倒数第三的员工。

select salaries.*, dept_manager.dept_no from salaries,dept_manager 
where salaries.emp_no = dept_manager.emp_no 
and salaries.to_date = '9999-01-01' 
and dept_manager.to_date = '9999-01-01'

*代表所有属性,属性之间用逗号

select employees.last_name, employees.first_name, dept_emp.dept_no from employees, dept_emp
where employees.emp_no = dept_emp.emp_no 

select employees.last_name, employees.first_name, dept_emp.dept_no from employees 
left join dept_emp on employees.emp_no = dept_emp.emp_no

把为空的列表查询出来用LEFT JOIN ON

查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

select emp_no, count(emp_no) as t from salaries
group by emp_no having t > 15
 

左连接

select employees.emp_no from employees left join dept_manager

on (employees.emp_no=dept_manager.emp_no)

where dept_manager.emp_no is null

猜你喜欢

转载自blog.csdn.net/wanpi931014/article/details/81135210