假设我有一个按层次结构构造的对象表:
A
|--B
|--C
| +--D
+--E它们存储在“父-子”表中,因此:
parent child
A B
A C
C D
A E如何对此进行查询以获得上面定义的结构?我想我需要一些能产生这样信息的东西:
object full_path
A NULL
B A
C A
D A.C
E A我不知道如何处理嵌套在一个以上深度的对象。感觉上我可能需要在表上进行迭代(不知道这在SQL中是否可行),或者以其他方式使用以前从未遇到过的某种查询。
附加信息:
GROUP BY和MIN语句将多父结构转换为单亲结构。发布于 2012-09-11 18:40:53
其他答案是正确的,mysql中没有递归功能。此链接描述如何在mysql:http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/中处理层次结构。
我在另外两个问题上找到了这个链接:如果结果完成,如何进行MySQL环连接哪个测试?和MySql中的分层数据。
发布于 2012-09-07 14:24:12
因为mysql不支持递归函数,所以不能使用mysql来实现,但是如果不需要无限深度,则可以使用self联接来获得树。否则,您需要在编程语言中使用递归函数,或者可以使用嵌套集,这样可以更容易地选择子树。
发布于 2012-09-07 19:36:31
MySQL不支持递归查询。但是如果您可以使用嵌套集来简化子树的获取。
https://stackoverflow.com/questions/12280154
复制相似问题