1、用户表准备
建立一张用户表:tb_user
表字段为:user_id,user_name,parent_id,其关系为:
2、运行sql语句
SELECT T2.user_id, T2.user_name
FROM (
SELECT
@r AS _id,
(SELECT @r := parent_id FROM tb_user WHERE user_id = _id) AS parent_id,
@l := @l + 1 AS lvl
FROM
(SELECT @r := 17, @l := 0) vars,
tb_user h
WHERE @r <> 0) T1
JOIN tb_user T2
ON T1._id = T2.user_id
ORDER BY T1.lvl DESC
得到结果为:
其中 @r := 17 表示 user_id为17的用户