Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecionando registros na ordem do ID pai


Se aqueles sem pais tivessem null em seu parent coluna, sua declaração seria muito simples:
SELECT id, name, parent FROM categories order by coalesce(parent, id), id;

Se você insistir em 0 representando nenhum pai, você pode usar CASE WHEN ... THEN ... mais detalhado demonstração.

Editar:
-- 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