我有一个表格菜单,其中包含通过外键引用同一表格中其他行的行。
这里的表:
+----+---------------+--------+
| 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排序。事实上,我希望所有的第一级项目也按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
我怎样才能做到这一点 ?