题解 | #获取所有非manager员工当前的薪水情况#

获取所有非manager员工当前的薪水情况

http://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe

正确答案

SELECT dept_no,emp_no,salary
FROM employees
INNER JOIN dept_emp
USING(emp_no)
INNER JOIN salaries
USING(emp_no)
WHERE emp_no not IN(
    SELECT emp_no from dept_manager WHERE to_date = '9999-01-01')
  1. to_date='*' 增加了员工的在岗时间限制,强调目前在职。-- 此句不需要加,不影响答案。
  2. 导致答案错误的是应该用inner join 而非left join。反推题目要求,题目原表中存在员工只有emp_no,没有部门信息或工资信息,这部分员工也步应出现在结果集中,所以要用inner。

错误答案

SELECT dept_no,emp_no,salary
FROM employees
LEFT JOIN dept_emp
USING(emp_no)
LEFT JOIN salaries
USING(emp_no)
WHERE emp_no not IN(
    SELECT emp_no from dept_manager)
全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务