2013-05-11 201 views
0

我面對一個SQL SELECT問題:SQL SELECT語句的問題

有一個問題,這個問題有一個anwser,而這個答案有一個問題,等等... 這是我的查詢:

SELECT Q.question, A.answer, A.nextQuestion as 'next question' from answers A join questions Q on A.nextQuestion = V.questionId 
order by Q.question; 

這是上面查詢的輸出:

Question 1 | Answer 1 | 2 
Question 1 | Answer 2 | 2 
Question 2 | Answer 1 | 1 
Question 2 | Answer 2 | 1 

所以現在的「下一個問題」是一個數字......但我想解決n個下一個問題文本(Q.question)... 我該怎麼做到這一點?

我想是這樣的:

Question 1 | Answer 1 | Question 2 
Question 1 | Answer 2 | Question 2 
Question 2 | Answer 1 | Question 1 
Question 2 | Answer 2 | Question 1 

在此先感謝!

我正在使用MySQL。

這是我的表結構:

表 「問題」

+------------------+ 
| Field   | 
+------------------+ 
| questionId  | 
| question   | 
+------------------+ 

表 「答案」

+------------------+ 
| Field   | 
+------------------+ 
| answerId   | 
| answer   | 
| nextQuestion  | 
+------------------+ 

回答

0

你的數據結構中缺少從一個問題的鏈接來回答。

因此,我將假設answers有一個字段QuestionId以及NextQuestionId。這是您獲得所需鏈接的一種方式。如果你沒有這樣的鏈接,那麼你需要更多地考慮你的數據結構。

有了這樣一個字段,第二加盟questions得到你所需要的:

SELECT Q.question, A.answer, nextq.Question as 'next question' 
from questions Q 
    answers A join 
    on A.QuestionId = q.questionId join 
    questions nextq 
    on A.NextQuestionId = nextq.QuestionId 
order by Q.question; 
+0

謝謝!這幫助我了! – Lorenzo 2013-05-12 09:49:02