admin

递归SQL Server查询

sql

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

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

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

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

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


阅读 209

收藏
2021-07-01

共1个答案

admin

你可以这样做:

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;
2021-07-01