请卸车 根据parent_id查询出所有的子集部门ID 的SQL
时间: 2024-05-28 21:09:24 浏览: 104
语句是什么?
根据parent_id查询出所有的子集部门ID的SQL语句可以分别使用递归查询和非递归查询的方式实现。以下是递归查询的SQL语句:
WITH RECURSIVE cte_department AS (
SELECT department_id, parent_id
FROM department
WHERE department_id = #{parent_id}
UNION ALL
SELECT d.department_id, d.parent_id
FROM department d
INNER JOIN cte_department c ON d.parent_id = c.department_id
)
SELECT department_id FROM cte_department;
其中,#{parent_id}是变量,表示要查询的父部门ID。这样,就可以查询出指定父部门下的所有子部门ID。
非递归查询的SQL语句如下:
SELECT department_id FROM department WHERE FIND_IN_SET(parent_id, (
SELECT GROUP_CONCAT(department_id)
FROM department
WHERE FIND_IN_SET(parent_id, (
SELECT GROUP_CONCAT(department_id)
FROM department
WHERE department_id = #{parent_id}
))
));
其中,#{parent_id}是变量,表示要查询的父部门ID。这样,也可以查询出指定父部门下的所有子部门ID。
阅读全文