2017-02-03 8 views
1

の下に解決する必要があります私は2つのテーブルを持っている:SQLクエリ:クエリロジック

enter image description here

私はロジック以下のように出力したい:

私はどんなclasscodeを入力した場合、私はすべての質問これに必要そのクラスコードに関連しています。 その質問の子供の質問でもある質問が欲しいです。

単一のクラスコードが複数の質問と一致する可能性もあります。この場合、クラスコード65005が表示されます。この場合は、親の上位質問とみなします。

のように、私はその後、私の出力を42908に合格する場合は、次の

enter image description here

は、あなたが任意のクエリを持っているなら、私は、知ってみましょう。

SELECT * FROM QuestionMaster as a INNER JOIN [ClassCodeQuestionMapping] as b ON a.QuestionId = b.QuestionId 
    WHERE b.ClassCode=42908 

私は上記のクエリを試みましたが、私はその子供の質問を得ました。

ありがとうございました。

+1

に関するいくつかのヒントを与える可能性がある場合、幸せな気分になりますテストしたり、クエリを記述するためのSQLエディタを持っていませんか? –

+0

@Amit Bisht、私はSQLで新しいです。だから私はその出力を得る方法が分かりません。 –

+0

小規模から始めて、特定のクラスコードの質問IDをどのように選択しますか?次に、質問IDに一致する質問を引き出すことについて考えることができます。 – Matt

答えて

0

最悪の答えをポジショニング誰かがそれをdownvoteが、これはまだ試してみました何ロジック

Select c.Question From (SELECT a.Question, a.ParentQuestionId 
FROM QuestoinTable as a 
INNER JOIN QuestoinClassMappingTable as b 
ON a.QuestionId = b.QuestionId 
where b.ClassCode = 1234) as c 
INNER JOIN QuestoinTable as d 
ON c.ParentQuestionId= d.QuestionId 
UNION 
Select d.Question From (SELECT a.Question, a.ParentQuestionId 
FROM QuestoinTable as a 
INNER JOIN QuestoinClassMappingTable as b 
ON a.QuestionId = b.QuestionId 
where b.ClassCode = 1234) as c 
INNER JOIN QuestoinTable as d 
ON c.ParentQuestionId= d.QuestionId