Вот что у меня в MySQL DB таблице:Каков наиболее эффективный способ получить последнюю ветку из таблицы SQL с определенным корнем?
id | parent | name
----------------------
1 | null | Root 1
3 | null | Root 3
6 | 3 | something 1
7 | 6 | something 2
9 | 1 | something 3
Я хотел бы получить самую последнюю ветвь из таблицы. Прямо сейчас я просто проверяю для самого высокого id
и следую за пунктами к корню в коде.
В моем случае я могу предположить, что последняя запись всегда является концом ветви, а не срединной ветвью или корнем.
Проблема заключается в том, чтобы получить самый новый из определенного корня. Итак, скажем, мне нужна последняя ветвь корня 3
. Как мне это сделать?
Есть ли способ, которым я могу запросить это в SQL, без необходимости делать рекурсивные циклы на PHP, пока не найду то, что мне нужно?
Изменение способа хранения дерева в SQL в настоящее время не является вариантом. :(
http://stackoverflow.com/questions/12796113/mysql-how-to- find-leaves-in-specific-node Это может решить вашу проблему – Naruto
Не совсем, нет. Измените свою модель данных или напишите sproc или присоединитесь к таблице так часто, как это может потребоваться, или используйте код уровня приложения для обработки рекурсии, как вы предложили. – Strawberry