mysql版本:8.0.32
对于 MySQL 8.0 及以上版本,递归查询可以通过 WITH RECURSIVE
语法实现。
WITH RECURSIVE subordinates AS (
SELECT id, name, manager_id
FROM employees
WHERE id = 1 -- Alice 的 ID
UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
INNER JOIN subordinates s ON e.manager_id = s.id
)
SELECT * FROM subordinates;
对于 MySQL 5.x 版本,可使用存储过程递归调用实现。