同一表中ID的sql,关系在另一个表中定义

raogr8fs  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(219)

我在employees表中有雇员,每个人都有雇员代码。他们中很少有经理,一个员工可以有一个经理id。这种关系在“员工详细信息”表中定义。如何获得员工id和经理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
6mzjoqzu

6mzjoqzu1#

select e1.employee_id as employee_id, e2.employee_id as manager_id from employee e1
left join emloyee_details d on e1.id = d.employee_id
left join employee e2 on d.manager = e2.id
where e1.employee_id = 'CRG001'
k5ifujac

k5ifujac2#

简单的select查询,只需在employee表上联接两次:

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 = ?

看到有人在这里摆弄它吗

相关问题