MySQL nepodporuje rekurzivní dotazy, takže pokud dítě může mít děti, neexistuje způsob, jak takový dotaz formulovat. Jinak by tento dotaz měl vrátit řádky v pořadí, které potřebujete:
SELECT * FROM tablename
ORDER BY
CASE WHEN parent_id=0 THEN id ELSE parent_id END,
id
Viz housle zde
. Trik je v řazení řádků podle id
pokud je to rodič nebo podle parent_id
pokud je to dítě, a pak pomocí id
.