SQL今日一题(10)
16lz
2021-01-22
题目描述
获取所有员工当前的(dept_manager.to_date='9999-01-01')manager,如果员工是manager的话不显示(也就是如果当前的manager是自己的话结果不显示)。输出结果第一列给出当前员工的emp_no,第二列给出其manager对应的emp_no。
用到dept_emp表和dept_manager表,两个表以dept_no为公共字段
dept_emp表
dept_manager表
方法
select de.emp_no,dm.emp_no as manager_no from dept_manager as dm inner join dept_emp as de on dm.dept_no = de.dept_no where dm.to_date = '9999-01-01' and de.to_date = '9999-01-01' and de.emp_no <> dm.emp_no
1、inner join连接两个表,公共字段是dept_no
2、where子句给定3个限制条件,两个“当前”的限制条件,让to_date = '9999-01-01',关键在于第3个限制条件,de.emp_no <> dm.emp_no,这样才能符合题目要求:manager是自己的话结果不显示
3、同样地,这个题也可以用where连接
select de.emp_no,dm.emp_no as manager_no from dept_manager as dm,dept_emp as de where dm.dept_no = de.dept_noand dm.to_date = '9999-01-01' and de.to_date = '9999-01-01' and de.emp_no <> dm.emp_no
更多相关文章
- 一道简单的数组遍历题,加上四个条件后感觉无从下手
- Pandas小册子:根据条件创建新的列
- 内卷?猝死?企业如何利用数据分析提升人效比,让员工远离“996”?
- LeetCode数据库篇|181超过经理收入的员工
- 如何使用带有“IF”条件的按钮改变DIV的背景颜色
- 基于html属性为gulp构建过程添加条件
- 在单个测试中断言多个条件,还是分成多个测试? [重复]
- 单个mysql查询,用于选择25个记录(9 + 16),使用union all并基于2个不
- php mysql有条件地将行插入到不同的表中