Я работаю с mysql и php, и у меня есть таблица Parent Child, созданная в mysql.
У каждого родителя есть 3 ребенка. Каждый ребенок становится также родителем и имеет 3 детей и т. Д.
Теперь мне нужно написать функцию, которая дает мне последний родительский элемент в дереве (в зависимости от идентификатора выбранного родителя), у которого нет 3 дочерних элементов. Таким образом, следующая родительская подписка может быть посвящена этому родителю.
Можно ли это сделать с помощью запроса или функции mysql?
Спасибо,
M
Я использую следующий запрос:
SELECT t1.uid, t2.pid FROM cms_users AS t1 LEFT JOIN cms_users AS t2 ON t1.uid = t2.pid
Что дает г-ну следующий вывод:
t1.uid t2.pid
1 1
1 1
1 1
2 2
2 2
2 2
3 3
4 NULL
5 NULL
Что мне действительно нужно, так это результат:
p1.uid p2.pid
1 3
2 3
3 1
4 0
5 0
Этот результат также начинается с корня Parent 1
Мне нужно получить результаты, начиная с выбранного uid где-то в трех.
У каждого родителя свое дерево, начиная с его идентификатора.
Возможно, мне нужно написать хранимую процедуру или что-то, но это все для меня в новинку, и я не знаю, как это сделать.
Это пример того, как выглядит дерево. http://www.musafreaks.com/images/tree.jpg
У ID пользователя 1 есть свое дерево, даже у пользователей 2, 3 и 4 есть собственное дерево и так далее.