首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中查询图/层次数据

问如何在mysql中查询图/层次数据
EN

Stack Overflow用户
提问于 2012-09-05 11:11:06
回答 5查看 7.6K关注 0票数 3

假设我有一个按层次结构构造的对象表:

代码语言:javascript
复制
A
|--B
|--C
|  +--D
+--E

它们存储在“父-子”表中,因此:

代码语言:javascript
复制
parent  child
A       B
A       C
C       D
A       E

如何对此进行查询以获得上面定义的结构?我想我需要一些能产生这样信息的东西:

代码语言:javascript
复制
object  full_path
A       NULL
B       A
C       A
D       A.C
E       A

我不知道如何处理嵌套在一个以上深度的对象。感觉上我可能需要在表上进行迭代(不知道这在SQL中是否可行),或者以其他方式使用以前从未遇到过的某种查询。

附加信息:

  1. 不一定是唯一的孤儿对象。
  2. 孩子们可能有多个父母,但就目前而言,无论哪种情况更容易解决,我都很满意。我可以容忍使用简单的GROUP BY和MIN语句将多父结构转换为单亲结构。
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-11 18:40:53

其他答案是正确的,mysql中没有递归功能。此链接描述如何在mysql:http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/中处理层次结构。

我在另外两个问题上找到了这个链接:如果结果完成,如何进行MySQL环连接哪个测试?和MySql中的分层数据。

票数 4
EN

Stack Overflow用户

发布于 2012-09-07 14:24:12

因为mysql不支持递归函数,所以不能使用mysql来实现,但是如果不需要无限深度,则可以使用self联接来获得树。否则,您需要在编程语言中使用递归函数,或者可以使用嵌套集,这样可以更容易地选择子树。

票数 0
EN

Stack Overflow用户

发布于 2012-09-07 19:36:31

MySQL不支持递归查询。但是如果您可以使用嵌套集来简化子树的获取。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12280154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档