MySQL 实现三级部门父子级关系显示 - 递归查询和树结构
实现三级部门父子级关系显示可以使用 MySQL 中的递归查询或者使用树结构的查询方式。
如果你的数据表中有一个字段表示父部门 ID,可以使用递归查询来实现:
WITH RECURSIVE cte AS (
SELECT department_id, department_name, parent_department_id, 0 AS level
FROM departments
WHERE parent_department_id IS NULL
UNION ALL
SELECT d.department_id, d.department_name, d.parent_department_id, cte.level + 1
FROM departments d
JOIN cte ON d.parent_department_id = cte.department_id
)
SELECT CONCAT(REPEAT('-', cte.level), cte.department_name) AS department_hierarchy
FROM cte
ORDER BY cte.department_id;
这里假设你的部门表名为departments,字段名为department_id、department_name和parent_department_id。
如果你的数据表中使用的是树结构,可以使用递归查询来实现:
WITH RECURSIVE cte AS (
SELECT department_id, department_name, 0 AS level
FROM departments
WHERE parent_department_id IS NULL
UNION ALL
SELECT d.department_id, d.department_name, cte.level + 1
FROM departments d
JOIN cte ON d.parent_department_id = cte.department_id
)
SELECT CONCAT(REPEAT('-', cte.level), cte.department_name) AS department_hierarchy
FROM cte
ORDER BY cte.department_id;
这里假设你的部门表名为departments,字段名为department_id、department_name和parent_department_id。
以上查询语句将返回一个包含部门层级关系的结果集。你可以根据实际的表名和字段名进行调整。
原文地址: https://www.cveoy.top/t/topic/p4Ls 著作权归作者所有。请勿转载和采集!