温馨提示×

mysql如何查询所有上级

小亿
236
2024-08-05 18:21:12
栏目: 云计算

要查询所有上级,可以使用递归查询的方法来实现。以下是一个示例查询语句,假设有一个名为employee的表,其中包含员工的ID和上级ID:

WITH RECURSIVE cte AS (
    SELECT id, parent_id
    FROM employee
    WHERE id = <employee_id>  -- 指定要查询的员工ID
    
    UNION ALL
    
    SELECT e.id, e.parent_id
    FROM employee e
    JOIN cte ON e.id = cte.parent_id
)

SELECT *
FROM cte;

在上面的查询语句中,首先使用WITH RECURSIVE关键字创建了一个递归公共表表达式(CTE),其中包含了指定员工及其所有上级的ID。然后使用UNION ALL将当前查询结果与employee表再次连接,直到找到所有上级为止。最后,通过SELECT * FROM cte语句将所有上级查询出来。

0