部门表中有部门id和pid 如何根据所在部门id去查询所有上级部门
可以使用递归查询的方法,先查询出当前部门的pid,然后再根据pid查询出上级部门的信息,不断递归直到顶级部门。
具体实现可以使用SQL语句中的WITH RECURSIVE语句,示例代码如下:
WITH RECURSIVE department_tree(id, name, pid) AS ( SELECT id, name, pid FROM department WHERE id = ? -- 查询当前部门信息 UNION ALL SELECT d.id, d.name, d.pid FROM department d JOIN department_tree t ON d.id = t.pid -- 查询上级部门信息 ) SELECT * FROM department_tree;
其中,id为当前部门id,可以根据实际情况替换。查询结果为包括当前部门在内的所有上级部门的信息。
原文地址: https://www.cveoy.top/t/topic/cQXT 著作权归作者所有。请勿转载和采集!