首页 > 解决方案 > SQL for ids 来自同一个表,关系在另一个表中定义

问题描述

我在员工表中有员工,每个人都有员工代码。他们中很少有人是经理,一名员工可以拥有一个经理 ID。该关系在员工详细信息表中定义。如何获取employee_id 和manager_id 下面是结构

employee
--------
id employee_id
1  CRG001
2  CRG002

employee_details
----------------
id employee_id manager
1  1            2
2  2            NULL

所以我想要的是如果我想在 API 中输入 CRG001 并获得以下结构

employee_id manager_id
CRG001      CRG002

如果我想在 API 中输入 CRG002 并获得以下结构

employee_id manager_id
CRG002      NULL

标签: mysql

解决方案


简单的 SELECT 查询,只需要在雇员表上加入两次

SELECT e.employee_id AS employee_id, m.employee_id as manager_id
FROM employee_details d
LEFT JOIN employee e ON e.id = d.employee_id
LEFT JOIN employee m ON m.id = d.manager
WHERE e.employee_id = ?

看到一个 dbfiddle 可以正常工作here


推荐阅读