【发布时间】:2012-09-05 11:11:06
【问题描述】:
假设我有一个层次结构的对象表:
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 中是否可行),或者使用我以前从未遇到过的某种查询。
附加信息:
- A 不必是唯一的孤立对象。
- 孩子可能有多个父母,但现在我很高兴能找到更容易解决的方案。我可以通过简单的
GROUP BY和MIN语句将多父结构转换为单父结构。
【问题讨论】:
-
所有项目是否只有一个父项,数据是否只有一个头(即只有 A 没有父项,所有项目都是 A 的后代),并且在中间表中,A 是否有记录说它没有父母?
-
查看编辑。 A 没有记录表明它没有父级,但这可以通过简单的
left join查询来确定。
标签: mysql database graph relational-database hierarchy