2017-02-01 2 views
0

Ich habe 3 Tabellen, die ich zu einer einzelnen Zeile für Zeile Informationen, die auf Headern, Fragen, Antwort basiert Datei muss. Sie sind alle von Foreign Keys verwandt.viele zu einer SQL-Abfrage

die TABLES sieht wie folgt aus:

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 

Ich bin neu in SQL und versucht haben, jeder Mitglied werden, dass ich weiß, und ich weiß nicht, ob dies möglich ist oder nicht. Ich hoffe, dass die Informationen, die ich gepostet habe, bei der Lösung meines Problems helfen.

Danke.

+4

Lookup Pivot. Außerdem sollten Sie dies in Ihrem Anwendungscode behandeln. – GurV

+0

Bitte schauen Sie sich [how-to-ask] an (http://stackoverflow.com/help/how-to-ask) – swe

+0

Die Frage hat alle Daten, aber was haben Sie versucht? Wenn Sie keine Ahnung haben, schlagen Sie bitte in der Dokumentation nach [hier ist ein Beispiel] (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) –

Antwort

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 

Ist, wie ich Ihre Fragen interpretiere. Machen Sie einfach genug Links Joins, dass Sie die maximale Anzahl von IDs "erfassen"