2

reviewersこのような構造のテーブルでは、次のようになります。

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

reviewer-id関数呼び出しでは、aとa reviewee-id(レビュー対象者が取得しようとしているアイテムの所有者)の両方を知っています。

私は今、レビュアーから始まり、レビュイーのIDで終わる(そしてそれを私が知っているレビュイーIDと一致させる)レビュアーテーブルのすべてのエントリを繰り返すクエリを送信しようとしています。ですから、レビュー対象者とレビュー担当者の間に関係があるかどうかを調べようとしています。

単一のクエリでこれを行うことは可能ですか?

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 に答える