在表reviewers
中,其结构如下:
reviewer | reviewee
===================
2 | 1
3 | 2
4 | 3
5 | 4
在函数调用中,我同时知道
reviewer-id
和reviewee-id
(审阅者要检索的项目的所有者)。我现在正尝试发送一个查询,该查询将对审阅者表中的所有条目进行迭代,从审阅者开始,并以受审者的ID结束(并将其与我所知道的受审者ID匹配)。因此,我试图找出受审者与审阅者之间是否存在联系。
是否可以在单个查询中执行此操作?
最佳答案
你可以这样做:
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
关于sql - 递归SQL Server查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13933255/