求一句比较复杂sql语句

时间:2022-12-26 15:12:29
t_category 表结构:category_id(integer) PK, category_en(varchar), parent_id(integer),rank(integer)
parent_id 是 category_id 的外键;rank 表示同一级 category 的一个排序比较,数字小的排前

要求按照层级关系,显示出所有数据成一个列表,层级深度不限
例如:
1、(1, bbb, null, 4)
2、(3, aaa, 1, 3)
3、(7, ccc, null, 2)
4、(8, ddd, 3, 2)
5、(10, eee, 7, 2)
6、(11, fff, 7, 1)
7、(14, ggg, 1, 1)
...

结果应该是:
1、(7, ccc, null, 2)
2、(11, fff, 7, 1)
3、(10, eee, 7, 2)
4、(1, bbb, null, 4)
5、(14, ggg, 1, 1)
6、(3, aaa, 1, 3)
7、(8, ddd, 3, 2)

如有需要,可以再添加字段。

2 个解决方案

#1


你这个自己写个存储过程用临时表进行递归即可

具体的你参考下版主整理的帖子吧:
MySQL中进行树状所有子节点的查询 
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx

#2


谢了

#1


你这个自己写个存储过程用临时表进行递归即可

具体的你参考下版主整理的帖子吧:
MySQL中进行树状所有子节点的查询 
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx

#2


谢了