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