题目描述

有一个员工表 dept_emp 简况如下:

获取所有员工当前的manager - 图1

第一行表示员工编号为 10001 的部门为 d001 部门

有一个部门经理表 dept_manager 简况如下:

获取所有员工当前的manager - 图2

第一行表示为 d001 部门的经理是编号为 10002 的员工。

获取所有的员工和员工对应的经理,如果员工本身是经理的话则不显示,上述示例的查询结果为:

获取所有员工当前的manager - 图3

答案解析

我们需要获取所有非经理的员工,并且获取该员工经理的编号。

可以使用内连接 + WHERE 语句筛选条件的方式得到结果

WHERE 语句的条件为 :

  1. -- 不等于可以使用 != <> 进行表示
  2. dept_emp.emp_no != dept_manager.emp_no

SQL 语句如下:

  1. SELECT e.emp_no AS emp_no,d.emp_no AS manager
  2. FROM dept_emp AS e INNER JOIN dept_manager AS d
  3. ON e.dept_no = d.dept_no
  4. WHERE e.emp_no != d.emp_no;