假设我有一个层次结构的对象表:
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我可以通过简单的andMIN语句将多父结构转换为单父结构。