2
のための共通テーブル式Iは、以下の方法で二つのテーブルのテーブルAとテーブルBを持っている:、Googleの面接の質問:再帰クエリまたは次のシナリオ
テーブルA(Xを言う)、 からIDを指定Table A(ID, PairId)
--Here the Pair represented by PairId will always have 2 elements in it.
Data:
100,1
101,1
-----
104,2
109,2
TableB(A.ID, GroupId)
--Here the Group represented by GroupId will may have any number of elements.
--Also, A.ID means its a foriegn key from TableA
Data:
100,1000
102,1000
103,1000
--------
101,1001
104,1001
105,1001
-------
105,1002
106,1002
107,1002
のidを探し、前のペアメイトのグループメイト を探し、前のステップで見つかったすべてのものの とそのグループメイト(前のステップで見つかったすべてのもの)とそう...。 あなたがどんな仲間やグループメイトも見つけられなくなるまで。
For instance, given X as 100
you will accumulate data in this fashion:
Include PairMates
100
101
Include GroupMates(of all the ones in prevstep)
100--groupmates of 100
102
103
101--groupmates of 101
104
105
Include PairMates(of all the ones in the prevstep)
100
102
103
101
104--Pairmate of 104
109
105
Include Groupmates(of all the ones in the prev step)
100
102
103
101
104
109
105--Groupmates of 105
106
107
Include Pairmates(of all the ones in the prevstep)
100
102
103
101
104
109
105
106
107
[None found]
Include Groupmates(of all the ones in the prevstep)
100
102
103
101
104
109
105
106
107
[Nonefound]
---since no pairmates and groupmates were added so the recursion ends
わかりました...ので、あなたは疑問を持っているのですか? –
これについてCTEをどのように記述したいと思いますか? – vinayvasyani