首页 > 解决方案 > 查询员工的名​​字和经理的名字的语法是什么?

问题描述

我知道如何分别查询所有员工的名字和部门所有经理的名字,但不知道如何查询员工的名​​字和经理的名字?两个表的结构如下:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: mysqlsqlmysql-workbench

解决方案


假设 employee.manager_id 指向员工的经理。

然后在 manager_id 上自加入员工表。

SELECT 
 emp.first_name AS emp_first_name, 
 mgr.first_name AS mgr_first_name
FROM employees emp
LEFT JOIN employees mgr 
  ON mgr.employee_id = emp.manager_id
ORDER BY emp.first_name

如果你还想要他们部门的经理。

SELECT 
 emp.first_name AS emp_first_name,
 mgr.first_name AS mgr_first_name,
 depmgr.first_name AS depmgr_first_name
FROM employees emp
LEFT JOIN employees mgr 
  ON mgr.employee_id = emp.manager_id
LEFT JOIN departments dep
  ON dep.department_id = emp.department_id
LEFT JOIN employees depmgr 
  ON depmgr.employee_id = dep.manager_id
ORDER BY emp.first_name

推荐阅读