想要一个数据结果如下三级部门的一个表想按照父子级关系显示出来mysql怎么写?部门1-部门1子部门1-部门1子部门2---部门1子部门2子部门1部门2-部门2子部门1
实现这个数据结果可以使用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。
以上查询语句将返回一个包含部门层级关系的结果集。你可以根据实际的表名和字段名进行调整
原文地址: http://www.cveoy.top/t/topic/imKR 著作权归作者所有。请勿转载和采集!