Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélection des enregistrements dans l'ordre de l'ID parent

Si ceux qui n'ont pas de parents avaient null dans leur parent colonne, votre déclaration serait très simple :

SELECT id, name, parent FROM categories order by coalesce(parent, id), id;

Si vous insistez sur 0 ne représentant aucun parent, vous pouvez utiliser CASE WHEN ... THEN ... plus verbeux déclaration.

Modifier :

-- Sorting by name instead
select a.id, a.name, a.parent 
from categories a left join categories b on a.parent=b.id 
order by coalesce(b.name, a.name), a.name