2017-02-01 16 views
0

ヘッダー、質問、応答に基づいて行情報ごとに1つの行にファイルする必要がある3つの表があります。彼らはすべて外国キーによって関連しています。多対1 SQL問合せ

TABLESは次のようになります。

Headers 
ID TemplateID 
0   9 
1   8 
2   7 

Questions 
------------------ 
ID | TemplateID 
------------------- 
0   9 
1   9 
2   8 
3   8 
4   8 
5   7 
6   7 

----------------- 
Response 
----------------- 
ID  HeaderID 
0   0  
1   0 
2   1 
3   1 
4   1 
5   2 
6   2 

And I want my Query to return it like this 
HeaderID TemplateID  QuestionID1  ResponseID1  QuestionID2  ResponseID2  QuestionID3  ResponseID3 
0    9    0    0    1    0    Null   Null 
1    8    2    2    3    2    4    2 
2    7    5    5    6    6    Null   Null 

私はSQLに新たなんだ、と、すべては私が知っているし、これが可能であるかどうかわからないことを参加しようとしています。私が投稿した情報が私の問題解決に役立つことを願っています。

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

+4

ルックアップピボット。また、アプリケーションコードでこれを処理する必要があります。 – GurV

+0

[how-to-ask](http://stackoverflow.com/help/how-to-ask) – swe

+0

質問にはすべてのデータがありますが、何を試しましたか? [ここに例があります](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved= 0ahUKEwj-hveZ8-7RAhWKpI8KHfz5B6EQFggaMAA&url = http%3A%2F%2Fwww.w3schools.com%2Fsql%2Fsql_join.asp&usg = AFQjCNFZqxeBfoVWkdNQwzQdaJxwbVJwuQ&bvm = bv.145822982、d.c2I) –

答えて

0
SELECT a.ID, a.TemplateID, b.ID, c.ID, b2.ID, c2.ID, b3.ID, c3.ID 
FROM Headers a LEFT JOIN Questions b ON a.ID=b.ID LEFT JOIN 
Response C ON b.ID=C.ID LEFT JOIN Questions b2 ON b2.ID = c.ID 
LEFT JOIN Response c2 ON b2.ID = c2.ID 
LEFT JOIN Questions b3 ON c2.ID = b3.ID LEFT JOIN Response c3 ON b3.ID = c3.ID 

私はあなたの質問をどのように解釈しますか?あなたはIDの最大量を "捕捉"するだけの十分な左の結合を行います

関連する問題