1. 题目描述
1.1 输入
有一个全部员工的薪水表salaries简况如下:
建表语句如下:
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));
有一个各个部门的领导表dept_manager简况如下:
建表语句如下:
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no, dept_no));
1.2 输出
请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:
2. 题目分析及解答
2.1 题目分析
查询内容为各个部门领导的薪水,因此,查询条件应为 salaries.emp_no = dept_manager.emp_no
,以提取salaries表中员工编号emp_no为领导的记录。同时,要求查询结果为薪水详情加上对应的部门编号dept_no,则应使用(内)连接语句将salaries表和dept_manager表根据查询要求关联输出,由于salaries.emp_no本身就是升序排序的,输出时无需另作排序处理。
2.2 详细解答
根据题目分析可直接写出相应的SQL查询语句:
SELECT s.*, d.dept_no FROM salaries as s JOIN dept_manager as d ON s.emp_no = d.emp_no;