嗨很多天我一直在研究MySQL中的这个问题,但我无法弄明白.你们有什么建议吗?
基本上,我有一个类别表,其域名包括:id,name(类别名称)和parent(类别的父ID).
示例数据:
1  Fruit        0
2  Apple        1
3  pear         1
4  FujiApple    2
5  AusApple     2
6  SydneyAPPLE  5
....
有许多级别,可能超过3个级别.我想创建一个sql查询,根据他的层次结构对数据进行分组:parent> child> grandchild>等.
它应该输出树结构,如下所示:
1 Fruit 0
 ^ 2 Apple 1
   ^ 4 FujiApple 2
   - 5 AusApple 2
     ^ 6 SydneyApple 5
 - 3 pear 1
我可以使用单个SQL查询执行此操作吗?我尝试过并且确实有效的替代方案如下:
SELECT * FROM category WHERE parent=0
在此之后,我再次遍历数据,并选择parent = id的行.这似乎是一个糟糕的解决方案.因为它是mySQL,所以不能使用CTE.