题解 | #获取所有非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-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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