Árvore MySQL ordenada por pai e filho
Estou tentando exibir uma estrutura em árvore no MYSQL com essa referência (http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/) e estou vendo que só funciona com 1 pai na mesma tabela.
Se você tem outra mesa para se juntar, nada vai bem. Exemplo:
Menu da tabela:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
Relações de mesa
+----+---------+-----------+
| id | menu_id | parent_id |
| 1 | 1 | NULL |
| 2 | 2 | NULL |
| 3 | 3 | 1 |
| 4 | 4 | 3 |
| 5 | 5 | 4 |
+----+---------+-----------+
Faça o SELECT
SELECT child_menu.*, menu.* FROM menu, relations AS child_menu
WHERE menu.id = child_menu.menu_id
GROUP BY menu_id
Eu tenho isto:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 2 | Father | 1 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
+----+--------+-------+
Estou tentando deixar seus filhos em ordem no mesmo SELECT.
Pelo que vejo nos exemplos, só funciona se o pai estiver na mesma tabela.
Alguém pode me ajudar? obrigado
Editado: SAÍDA ESPERADA:
+----+--------+-------+
| id | name | order |
| 1 | Father | 0 |
| 3 | Son | 0 |
| 4 | Child | 1 |
| 5 | Granson| 2 |
| 2 | Father | 1 |
+----+--------+-------+
I.E. Father
Son
Child
Grandson