【问题标题】:SQL select statement issueSQL 选择语句问题
【发布时间】:2013-05-11 19:10:37
【问题描述】:

我遇到了一个 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     |
+------------------+

【问题讨论】:

    标签: mysql sql select subquery


    【解决方案1】:

    您的数据结构缺少从问题到回答的链接。

    所以,我要假设answers 有一个字段QuestionIdNextQuestionId。这是您获得所需链接的一种方式。如果您没有这样的链接,那么您需要更多地考虑您的数据结构。

    有了这样一个字段,第二次加入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;
    

    【讨论】:

    • 谢谢!这帮助了我!
    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2015-03-28
    • 2011-04-17
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多