doq*_*que 2 sql sql-server recursion
在具有如下reviewers结构的表中:
reviewer | reviewee
===================
2 | 1
3 | 2
4 | 3
5 | 4
Run Code Online (Sandbox Code Playgroud)
在函数调用中,我知道a reviewer-id和a reviewee-id(审阅者要检索的项目的所有者).
我现在正在尝试发送一个查询,该查询迭代审阅者表中的所有条目,从审阅者开始,并以reviewee的id结束(并将其与我知道的reviewee id匹配).所以我试图找出reviewee和reviewer之间是否存在联系.
是否可以在单个查询中执行此操作?
你可以这样做:
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;
Run Code Online (Sandbox Code Playgroud)