外部キーを介して同じテーブル内の他の行を参照する行を含むテーブルメニューがあります。
ここにテーブルがあります:
+----+---------------+--------+
| id | title | parent |
+----+---------------+--------+
| 1 | Enseignements | NULL |
| 2 | Juments | 4 |
| 3 | Étalons | 4 |
| 4 | Animaux | NULL |
| 5 | Tarifs | 1 |
+----+---------------+--------+
次のように、階層的およびアルファベット順に行をグループ化したいと思います。
+----+---------------+--------+
| id | title | parent |
+----+---------------+--------+
| 4 | Animaux | NULL |
| 3 | Étalons | 4 |
| 2 | Juments | 4 |
| 1 | Enseignements | NULL |
| 5 | Tarifs | 1 |
+----+---------------+--------+
同じブランチからアイテムをグループ化することができました。サブレベルの項目はtitleでソートされます。実際、次のように、すべての第 1 レベルの項目もtitleでソートされることを望みます。
+----+---------------+--------+
| id | title | parent |
+----+---------------+--------+
| 1 | Enseignements | NULL |
| 5 | Tarifs | 1 |
| 4 | Animaux | NULL |
| 3 | Étalons | 4 |
| 2 | Juments | 4 |
+----+---------------+--------+
コードで:
SELECT title, COALESCE(parent, id), parent
FROM menu
GROUP BY COALESCE(parent, id), title
これどうやってするの ?