【发布时间】:2020-12-30 07:46:55
【问题描述】:
父子表
| id | introducer_id | name |
|---|---|---|
| 1 | NULL | Riya |
| 2 | 1 | Ramesh |
| 3 | 1 | Anand |
| 4 | 2 | Preety |
| 5 | 3 | Rakesh |
id = 1时查询成员列表
select id AS memberid, name
from (select *
from table_member
order by introducer_id, id) table_member_sorted,
(select @pv := '1') initialisation
where find_in_set(introducer_id, @pv)
and length(@pv := concat(@pv, ',', id))
以上查询显示输出
| member_id | name |
|---|---|
| 2 | Ramesh |
| 3 | Anand |
| 4 | Preety |
| 5 | Rakesh |
现在我也想查询所有成员的等级 (即)我希望输出为:
| member_id | name | level |
|---|---|---|
| 2 | Ramesh | 1 |
| 3 | Anand | 1 |
| 4 | Preety | 2 |
| 5 | Rakesh | 2 |
如何更新我之前的查询以获得上述输出?
注意:查询最多显示7级
谢谢。
【问题讨论】:
-
ORDER BY在子查询table_member_sorted将被忽略。 -
指定精确的 MySQL 版本。
-
MySql 5.6 版
标签: mysql tree parent-child hierarchy depth