我正在尝试使用此参考(http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/)在 MYSQL 中显示树结构,我看到它仅适用于同一张表中的 1 个父级.
如果您有另一张桌子可以加入,那么一切都不会顺利。例子:
表菜单:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
表关系
+----+---------+-----------+
| id | menu_id | parent_id |
| 1 | 1 | NULL |
| 2 | 2 | NULL |
| 3 | 3 | 1 |
| 4 | 4 | 3 |
| 5 | 5 | 4 |
+----+---------+-----------+
做选择
SELECT child_menu.*, menu.* FROM menu, relations AS child_menu
WHERE menu.id = child_menu.menu_id
GROUP BY menu_id
我有这个:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
我试图让他们的孩子在同一个 SELECT 中按顺序排列。
从我在示例中看到的情况来看,仅当父级在同一个表中时才有效。
有人能帮我吗?谢谢你
编辑:预期输出:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
| 2 | Father | 1 |
+----+--------+-------+
I.E. Father
Son
Child
Grandson