查找最晚入职员工的所有信息
解题步骤:
题目:查询最晚入职员工的所有信息
目标:查询员工的所有信息
筛选条件:最晚入职
答案:
1 SELECT 2 *--查询所有信息就用* 3 FROM 4 employees 5 WHERE 6 hire_date = (--这里是一个子查询,因为要和hire_date匹配,所以只能是一个值,注意max函数使用规则 7 SELECT 8 MAX(hire_date) 9 FROM 10 employees 11 )
查找入职员工时间排名倒数第三的员工所有信息
解题步骤:
题目:查找入职员工时间排名倒数第三的员工所有信息
目标:查询员工的所有信息
筛选条件:入职时间到第三
答案:
1 SELECT 2 *--所有信息,用*省事 3 FROM 4 employees 5 where hire_date = ( SELECT DISTINCT--子查询,注意hire_date是一个值,子查询的返回值一定要是一个 6 hire_date 7 FROM 8 employees 9 ORDER BY--这里有一个小技巧,倒序排,从第三条取,去一条 10 hire_date DESC 11 limit 2,1--分页语法要仔细看看,limit m,n=> 从m+1开始取,取n条 12 )
查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
解题步骤:
题目:查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
目标:查询领导薪水详情,对应部门编号
筛选条件:部门表当前时间,隐藏的条件(薪水表当前时间)
答案:
1 SELECT 2 s.*, 3 d.dept_no 4 FROM 5 salaries s--左联到部门表,薪水表人全,所以做主表比较好,不会出现关联出空的情况 6 LEFT JOIN dept_manager d ON s.emp_no = d.emp_no 7 WHERE 8 s.TO_DATE = '9999-01-01'--筛选条件 9 AND d.TO_DATE = '9999-01-01'