MySQL - 递归查询部门组织

本文介绍如何在MySQL中进行递归查询以获取员工所属的完整部门路径。通过示例代码展示了如何从指定的部门ID(如3478)开始,查询到该部门及其所有上级部门的ID和层级。
摘要由CSDN通过智能技术生成

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 
           
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值