mysql 查询某个部门下所有的子级部门
为了查询某个部门下所有的子部门,你可以使用递归的Common Table Expression (CTE)。以下是一个示例SQL查询,它使用CTE来找到所有子部门:
WITH RECURSIVE sub_departments AS (
SELECT
id,
name,
parent_id
FROM
departments
WHERE
id = [起始部门ID] -- 这里替换成你要查询的部门ID
UNION ALL
SELECT
d.id,
d.name,
d.parent_id
FROM
departments d
INNER JOIN sub_departments sd ON sd.id = d.parent_id
)
SELECT * FROM sub_departments;
确保将[起始部门ID]
替换为你想要查询的部门的ID。这个查询首先选择起始部门,然后通过递归地加入其父部门直到没有更多的子部门为止,从而获取所有相关的子部门。
请注意,这个查询假设你的部门表叫做departments
,并且有两个字段,一个是id
(部门的唯一标识),另一个是parent_id
(指向父部门的ID)。如果你的表结构不同,请相应地调整字段名。
评论已关闭