Drzewo MySQL uporządkowane według rodzica i dziecka
Próbuję wyświetlić strukturę drzewa w MYSQL z tym odniesieniem (http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/) i widzę, że działa tylko z 1 rodzicem w tej samej tabeli.
Jeśli masz inny stół do przyłączenia, nic nie pójdzie dobrze. Przykład:
Menu tabeli:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
Relacje tabelaryczne
+----+---------+-----------+
| id | menu_id | parent_id |
| 1 | 1 | NULL |
| 2 | 2 | NULL |
| 3 | 3 | 1 |
| 4 | 4 | 3 |
| 5 | 5 | 4 |
+----+---------+-----------+
Wykonaj SELECT
SELECT child_menu.*, menu.* FROM menu, relations AS child_menu
WHERE menu.id = child_menu.menu_id
GROUP BY menu_id
Mam to:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
Próbuję zostawić swoje dzieci w porządku w tym samym SELECT.
Z tego, co widzę w przykładach, działa tylko wtedy, gdy rodzic jest w tej samej tabeli.
Czy ktoś może mi pomóc? Dziękuję Ci
Edytowane: OCZEKIWANY WYNIK:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
| 2 | Father | 1 |
+----+--------+-------+
I.E. Father
Son
Child
Grandson