2013-05-11 91 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