TSQL从递归表中获取所有行

时间:2012-03-14 15:24:36

标签: c# tsql recursion common-table-expression

这是问题的后续跟进:SQL Server to show a data tree in a specific format

现在我们有第二个表与“leaf”行中的第一个表相关:

表1:

   Itemid   Itemname    Itemfatherid
    itemA    theitemA    null
    itemB    theitemB    null
    itemC    theitemC    itemA
    itemD    theitemD    itemA
    itemE    theitemE    itemC
    itemF    theitemF    itemE
    itemG    theitemG    itemD

在这个表中,itemF和itemG将是leafs(他们没有任何孩子)

表2:

   Itemid   RelItemid
    item1    itemF
    item2    itemF
    item3    itemG

视觉关系如下:

-itemA
    -itemC
        -itemE
            itemF (item1, item2)
    -itemD
        itemG (item3)
itemB

我们需要从第二个表中获取与第一个表相关的所有行,并通过一个特定的节点对其进行过滤。

示例:

Filtering by node itemA: item1, item2, item3
Filtering by node itemE: item1, item2
Filtering by node itemD: item3
Filtering by node itemG: item3
Filtering by node itemB: 

很抱歉这篇长篇文章,为了掩盖任何漏洞......谢谢

2 个答案:

答案 0 :(得分:0)

我认为Recursive Queries Using Common Table Expressions!可能会用到你的全部

答案 1 :(得分:0)

最后我们解决了它循环遍历结果并执行sqls从第二个表中获取相关行...不是所需的解决方案,而是一个可行的