2014-11-12 3 views
0

Я хочу, чтобы получить путь между двумя узлами с использованием MYSQL рекурсии, подзапроса, без использования процедуры /, функцииMySQL - рекурсивный путь дерева между двумя узлами

Моей таблицы

ссылка

+--------+--------+ 
| child | parent | 
+--------+--------+ 
|  5 |  1 | 
|  3 |  1 | 
|  2 |  3 | 
|  4 |  3 | 
|  6 |  4 | 
+--------+--------+ 

Ex: путь между ребенком 6 и ребенком 5 - 6-4-3-1-5

+0

«Вложенные множества» может Полезно: [316267/help-with-writing-a-sql-query-for-nested-sets] (https://stackoverflow.com/questions/316267/help-with-writing-a-sql-query-for -nested наборы) –

ответ

0

Извините. MySQL И recursion И without using Procedure/function невозможно.

Хотя истинная рекурсия не представляется возможным, для ограниченного числа уровней, можно сделать несколько присоединиться как

FROM mytable t0 
LEFT JOIN mytable t1 ON t1.parent=t0.child 
LEFT JOIN mytable t2 ON t2.parent=t1.child 
LEFT JOIN mytable t3 ON t3.parent=t2.child 
LEFT JOIN mytable t4 ON t4.parent=t3.child 
... 

, но это только для ограниченной глубины и крайне неэффективным

Смежные вопросы