首页 > 解决方案 > JOIN 语句的 SQL 问题(来自 1 个表的多个结果)

问题描述

所以我有一个选择 quiz_questions 和 quiz_question_options 的 SQL 查询但是当我运行我的 SQL 查询时,我只从 quiz_option 得到 1 个结果(在我的数据库中,每个问题都有 3 个选项)。我如何能够为每个问题显示所有 3 个选项?

表:

quiz_question

-id (PK) -quiz_id(FK) -question

quiz_question_option

`-id (PK)
-quiz_question_id(FK)
-quiz_option`

到目前为止,这是我的代码:

SELECT quiz_question.question,quiz_question_option.quiz_option FROM quiz_question_option LEFT JOIN quiz_question ON quiz_question.id = quiz_question_option.quiz_question_id ORDER BY RAND() LIMIT 5

限制将根据用户输入而改变

编辑:我得到的结果是:

question |quiz_option 1.question|1.answer 2.question|2.answer

我需要得到的是:

question |quiz_option 1.question|1.answer 1.question|2.asnwer 1.question|3.answer 2.question|1.answer 2.question|2.answer 3.question|3.answer etc...

2.编辑:我需要为我的项目(网站)进行 sql 查询,以便用户选择他想要的问题数量。在下一页上,它将显示问题。我已经有了显示随机问题的代码。但我不知道如何显示所选问题的选项。

标签: mysqlsql

解决方案


似乎你想忽略这种关系。你想要达到的目标是cross join

select t1.question, t2.quiz_option
from quiz_question_option t1
cross join quiz_question t2

推荐阅读