请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:
本题自己思路:输出顺序,限制是当前领导(to_date限定同一日期,去除提前离职的部门领导),按部门emp_no排序
其他思路:
预备知识:
隐式内连接 where s.no=d.no and....and (多个条件)...
显示外连接 join... on ....and...and....(多个)
显示外连接:left join ... on(有且只有一个限定条件)
用隐式内连接,显式内连接,和外连接均可。需要注意的是
左外连接 on后不能直接加and当作限制条件,显示外连接可以可以
隐式内连接
select t1.*,t2.dept_no
from salaries t1, dept_manager t2
where t1.to_date = '9999-01-01'
and t2.to_date = '9999-01-01'
and t1.emp_no = t2.emp_no;
显式外连接
select s.* ,d.dept_no
from salaries as s
join dept_manager as d
on s.emp_no=d.emp_no
and s.to_date = '9999-01-01'
and d.to_date='9999-01-01';
左外连接
select s.*,d.dept_no from salaries s left join dept_manager d on s.emp_no = d.emp_no where s.to_date = '9999-01-01' and d.to_date = '9999-01-01'; |