SQL select语句问题

时间:2013-05-11 19:10:37

标签: mysql sql select subquery

我正面临一个SQL SELECT问题:

有一个问题,这个问题有一个问题,这个答案有下一个问题,依此类推...... 这是我的问题:

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

所以现在'下一个问题'是一个数字......但我想将这个数字解析为下一个问题文本(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     |
+------------------+

1 个答案:

答案 0 :(得分: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;