この参照 ( 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