您的位置:首页 > 数据库 > MySQL

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

2017-11-13 20:59 281 查看
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


得到结果为:






其中
[b]@r := 17 表示 user_id为17的用户
[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql select sql join union