MySQL - 递归查询部门组织
Max.Bai
2019-11
0x00: 背景
项目需要查询某个人所属的部门,上级,上上上级部门,就是查到这个人所属的部门路径。
0x01: MySQL 代码
SELECT id, dept_name, `level`, parent_dept_id
FROM (
SELECT
@r AS _id,
(SELECT @r := parent_dept_id FROM dept WHERE id = _id) AS parent_id,
@l := @l + 1 AS lvl
FROM
(SELECT @r := 3478, @l := 0) vars,
dept h
WHERE @r <> 0
) T1
JOIN dept T2
ON T1._id = T2.id
ORDER BY `level`;
代码里面的3478 就是这个人所属的当前部门id,
查到结果:
0x02: 核心代码理解
SELECT