题解 | #获取所有非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)
全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务