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

1、用户表准备

建立一张用户表:tb_user

表字段为:user_id,user_name,parent_id,其关系为:

mysql 根据子级id查询其所有的父级的_第1张图片

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

得到结果为:

mysql 根据子级id查询其所有的父级的_第2张图片

其中 @r := 17 表示 user_id为17的用户

你可能感兴趣的:(mysql,java)