MySQL - 递归两个节点之间的树路径

标签 mysql binary-search-tree

我想使用MYSQL递归、子查询来获取两个节点之间的路径,而不使用Procedure/,function

我的 table 是

链接

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

例如: child 6 和 child 5 之间的路径是 6-4-3-1-5

最佳答案

抱歉。 MySQL AND 递归 AND 不使用过程/函数是不可能的。

虽然不可能实现真正的递归,但对于有限数量的级别,可以进行多个连接,例如

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
...

但这仅限于有限的深度并且效率很低

关于MySQL - 递归两个节点之间的树路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886052/

相关文章:

php - 数据库中三个不同表之间的计算?

c++ - 从二叉搜索树中删除?

PHP 一年内请假的总天数

mysql - 根据具体条件连接3个表

java - JDBC如何映射java.sql.types类中MySQL中不存在的SQL类型?

java - 访问树中的各个节点java

algorithm - k 连续调用 bst 中的树后继

java - 如何修改二叉搜索树的遍历?

c - 从二叉搜索树中删除节点,而不将父节点存储在结构内

mysql - 如何在MySQL中的多个参数表中进行搜索?