【问题标题】:Recursive SQL Server query递归 SQL Server 查询
【发布时间】:2012-12-05 16:13:28
【问题描述】:

在具有如下结构的表reviewers 中:

reviewer | reviewee
===================
2        |      1
3        |      2
4        |      3
5        |      4

在函数调用中,我知道reviewer-idreviewee-id(被审核者要检索的项目的所有者)。

我现在正在尝试发送一个查询,该查询会迭代 reviewers 表中的所有条目,从 reviewer 开始,到 reviewee 的 id 结束(并将其与我知道的 reviewee id 匹配)。所以我试图找出reviewee和reviewer之间是否存在联系。

是否可以在单个查询中执行此操作?

【问题讨论】:

    标签: sql sql-server recursion


    【解决方案1】:

    你可以这样做:

    WITH CTE
    AS
    (
       SELECT reviewer, reviewee
       FROM TableName 
       WHERE reviewee = @revieweeID
       UNION ALL
       SELECT p.reviewer, p.reviewee 
       FROM CTE c
       INNER JOIN TableName p ON c.reviewee = p.reviewer
    )
    SELECT * 
    FROM CTE;
    --- WHERE reviewer = @reviewerID;
    

    Demo

    【讨论】:

    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 2014-10-10
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    相关资源
    最近更新 更多