「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」。
Test 1
有一个全部员工的薪水表 salaries 简况如下:
有一个各个部门的领导表
dept_manager 简况如下:
请你查找各个部门当前领导的薪水详情以及其对应部门编号
dept_no,输出结果以 salaries.emp_no 升序排序,并且请注意输出结果里面 dept_no 列是最后一列,以上例子输出如下:
解题思路
考察知识点
内联结、ORDER BY。
先观察两张表的结构,两表中的都有 emp_no 列,可以使用内联结,并设置联结条件 s.emp_no = d.emp_no。
WHERE 的条件不加也可以,但真实场景下是要加的,因为要排除已离职的员工(to_date != '9999-01-01')。最后通过 emp_no 升序排序。
SELECT s.*, dept_no
FROM salaries AS s
INNER JOIN dept_manager AS d
ON s.emp_no = d.emp_no
-- WHERE s.to_date='9999-01-01' and d.to_date='9999-01-01'
ORDER BY emp_no
Test 2
有一个员工表,employees 简况如下:
有一个部门表,
dept_emp 简况如下:
请你查找所有已经分配部门的员工的
last_name 和 first_name 以及 dept_no,未分配的部门的员工不显示,以上例子如下:
解题思路
考察知识点
内联结
dept_emp 表中的数据都是已分配了部门的员工信息,因此,只需将 dept_emp 表和 employees 表通过内联结的方式连接起来,并添加联结条件即可。
SELECT e.last_name, e.first_name, d.dept_no
FROM employees AS e
INNER JOIN dept_emp AS d
ON e.emp_no = d.emp_no
这就是今天要分享的内容,微信搜 Python新视野,每天带你了解更多有用的知识。更有整理的近千套简历模板,几百册电子书等你来领取哦!另外还有Python小白交流群,如果有兴趣可以通过上面的方式联系我哦!