Вот простая таблица:
id, title, parent, ordering
---------------------------
3242, TitleB, 0, 1
6574, TitleBA, 3242, 1
2346, TitleBB, 3242, 2
2344, TitleA, 0, 1
7346, TitleAC, 2344, 3
3574, TitleAB, 2344, 2
2256, TitleAA, 2344, 1
1435, TitleC, 0, 1
4354, TitleCA, 1435, 1
Я ищу запрос, который может упорядочить и вывести эти строки следующим образом:
TitleA
TitleAA
TitleAB
TitleAC
TitleB
TitleBA
TitleBB
TitleC
TitleCA
Таким образом, строки должны быть упорядочены первым родителем, а затем упорядочены его дочерние элементы Затем следует следующий родитель, затем его дочерние элементы и т. Д.
Заказ самих родителей не имеет значения! Названия только для лучшего понимания и не могут быть использованы для сортировки. Важно то, что дети сортируются под родителями.
Это последний запрос, который я сделал:
SELECT *
FROM table t1
LEFT JOIN table t2
ON t2.id = t1.parent
ORDER BY COALESCE(t1.ordering, t2.ordering), t2.ordering