Ich habe eine Ebene Hierarchie Tabellastruktur mit Adjazenzliste Modell. Es könnte wie folgt zusammengefasst werden:MySQL wählen Eltern gefolgt von seinen Kindern und bestellt von
id parent_id title created_at
1 null name1 2017-05-30 08:05:00
2 null name2 2017-05-30 08:15:00
3 1 another name 2017-05-30 09:00:00
4 1 new name 2017-05-30 08:06:00
5 2 new title 2017-05-30 08:18:04
6 null lorem 2017-05-30 08:04:00
Was muss ich bekommen ist eine SQL-Abfrage, die jede Zeile von null parent_id
dh die Eltern durch ihre Kinder bestellt von created_at
So etwas wie die folgenden gefolgt zurück:
id parent_id title created_at
6 null lorem 2017-05-30 08:04:00
1 null name1 2017-05-30 08:05:00
4 1 new name 2017-05-30 08:06:00
3 1 another name 2017-05-30 09:00:00
2 null name2 2017-05-30 08:15:00
5 2 new title 2017-05-30 08:18:04
ich habe
versuchtSELECT COALESCE(`parent_id`, `id`) as pid, title, created_at
FROM `items`
ORDER BY created_at
Aber es der another name
Datensatz separat am Ende t nicht gelungen ist gekommen Das Ergebnis ist festgelegt.
Dies ist sql fiddle for the case
Hinweis Im realen Fall die ID ein UUID-String ist.
Es wird als nächstes zu arbeiten, wie ich brauche, aber es gibt nicht die Reihe von 'id' =' 6 'zunächst trotz seiner Datetime ist der erste. – SaidbakR
Also, um Ihre Frage zu klären, wollen Sie das Ergebnis von 'created_at' für die Eltern, aber die Kinder nach ihrem Eltern in' created_at' Reihenfolge kommen? – Turophile
Ja es ist, wie Sie dachten, Eltern von created_at bestellt und jeder Elternteil wird gefolgt von seinen Kindern auch bestellt von created_at – SaidbakR