Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Auswählen von Datensätzen in der Reihenfolge der übergeordneten ID

Wenn diejenigen ohne Eltern null hätten in ihrem parent Spalte, wäre Ihre Aussage sehr einfach:

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

Wenn Sie auf 0 bestehen keinen Elternteil darstellen, können Sie ausführlicher CASE WHEN ... THEN ... verwenden Aussage.

Bearbeiten:

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