1

外部キーを介して同じテーブル内の他の行を参照する行を含むテーブルメニューがあります。
ここにテーブルがあります:

+----+---------------+--------+
| 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

これどうやってするの ?

4

1 に答える 1