Я хочу получить путь от узла к корню дерева. Это мое дерево, например:Получить корневой путь дерева с чистым MySQL
id | name | parent_id
------------------------------
1 | mike | 0
2 | danny | 1
3 | peter | 1
4 | clark | 2
5 | lily | 1
6 | stefan | 3
7 | simon | 3
8 | boby | 1
9 | john | 4
10 | elly | 4
я пишу АЛГОРИТМ с PHP и MySQL, но это медленно
public function GetRootPath($a_id) {
$root="";
$results="";
while(1==1){
$result = DB::select("SELECT id, parent_id FROM users WHERE id=$a_id");
if($result[0]->refr!=0) {
if($root==""){
$root=$result[0]->parent_id;
}
else {
$root=$result[0]->parent_id.'.'.$root;
}
$a_id=$result[0]->parent_id;
}
else {
break;
}
}
return $root;
}
Как это могло быть написано в чистом MySQL? Я не очень разбираюсь в процедурах и функциях MySQL.
Может переключиться на вложенный набор – Strawberry
вложенной набор хороша для дерев с фиксированной глубиной, шахты очень динамичны (реферальная система). – vinsa
Почему вложенный набор хорош для деревьев с фиксированной глубиной? Я бы подумал, что это правда!!!?! – Strawberry