标签:练习题 01 no salaries dept 牛客 emp SQL date
之前的综合题有点难度。
https://www.nowcoder.com/ta/sql
1.查找最晚入职员工的所有信息
使用子查询
# 日期相同也无碍 SELECT * FROM employees WHERE hire_date = (SELECT max(hire_date) FROM employees)
# 只能输出一条 SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1;
2.查找入职员工时间排名倒数第三的员工所有信息
先完成子查询,然后根据找到的时间排名,确定该员工所有的信息
# 若存在同一天多人入职,不好使
SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1 OFFSET 2;
SELECT * FROM employees WHERE hire_date=( SELECT DISTINCT hire_date FROM employees ORDER BY hire_date DESC LIMIT 1 OFFSET 2 );
3.查找当前薪水详情以及部门编号dept_no
只使用where
使用内连接
使用右连接
select salaries.emp_no,salary,from_date,salaries.to_date,dept_no from salaries,dept_manager where salaries.emp_no = dept_manager.emp_no
and dept_manager.to_date='9999-01-01'
and salaries.to_date='9999-01-01' order by salaries.emp_no;
select s.*,d.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';
select s.*,d.dept_no from salaries as s right join dept_manager as d on s.emp_no = d.emp_no
4.查找所有已经分配部门的员工的last_name和first_name以及dept_no
右连接
select e.last_name,e.first_name,d.dept_no from employees as e right join dept_emp as d on e.emp_no = d.emp_no;
5.查找所有员工的last_name和first_name以及对应部门编号dept_no
左连接
select e.last_name,e.first_name,d.dept_no from employees as e left join dept_emp as d on e.emp_no = d.emp_no;
标签:练习题,01,no,salaries,dept,牛客,emp,SQL,date 来源: https://www.cnblogs.com/Cookie-Jing/p/14902281.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。