获取root父级的mysql查询

时间:2013-09-19 11:17:15

标签: mysql sql hierarchical-data

我在表categories中有以下数据:

 id  parent_id    title
 -----------------|-------------------
 1         0      |A
 2         1      |B
 3         2      |C
 4         3      |D
 5         4      |E

现在我想获得类别ID 4的根类别标题(parent_id 0),这是标题A的类别ID 1。

如何在单个mysql查询中获得所需的结果?我假设将使用程序性查询,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

尝试此查询

它假设父级的id小于child,因为记录在实际查询之前作为派生表以降序排序。

select 
  @parent:=parent_id as prnt, title, id
from
  (select @parent:=8 ) a
join 
  (select * from tbl order by id desc) b
where 
  @parent=id

Fiddle

| PRNT | TITLE | ID |
|------|-------|----|
|    7 |     q |  8 |
|    6 |     a |  7 |
|    0 |     d |  6 |

注意最好的方法是使用存储过程..