mysql 根据子级id查询其所有的父级的

来源:互联网 发布:畜牧兽医网络教育 编辑:程序博客网 时间:2024/05/20 02:51

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的用户

阅读全文
0 0