要查询所有上级,可以使用递归查询的方法来实现。以下是一个示例查询语句,假设有一个名为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
语句将所有上级查询出来。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
推荐阅读:mysql如何查询所有表格