SQL循环。我想遍历包含SELECT结果的循环

时间:2018-11-27 21:43:21

标签: sql hierarchical-data recursive-query

从具有列结构(父,子)的表中,我需要:

  1. 对于一个特定的父母,我需要所有孩子。
  2. 从(1)的结果来看,我也需要孩子的孩子。

例如对于parent = 1:

    parent|child  parent|child   parent|child
    1      a        a     d        b      f
           b              e               g

1 个答案:

答案 0 :(得分:0)

我认为,这可以为您提供您想要的信息。两列:子代和孙代(如果有的话,否则为NULL)。由于您未指定,因此不确定是否是您想要的架构。您可以添加JOIN来增加递归深度。

select t1.child, t2.child
from T as t1 left join T as t2
on t1.child = t2.parent
where t1.parent = 1

这在SQLite上有效;我认为这很标准。关于模式,如果这不为您服务,希望它可以给您一些想法;否则,请指定更多。