2

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

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

在函数调用中,我知道 areviewer-id和 a reviewee-id(被审核者想要检索的项目的所有者)。

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

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

4

1 回答 1

6

你可以这样做:

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;

演示

于 2012-12-18T12:46:51.593 回答