【发布时间】:2015-01-23 23:25:04
【问题描述】:
我正在制作一个“测验应用程序”。每个测验都有多个问题(quizComponents),每个问题都有多个答案选项(quizComponentOptions),参与者可以从中选择。答案保存在 quizResults 表中。我有这些表:
- 测验(quizID, quizTitle);
- QuizComponents(componentId, quizID, quizQuestion);
- QuizComponentOptions(optionId, componentId, optionValue);
- QuizResults(resultId, personId, answerOptionId, componentId);
- CorrectOptions(componentId, optionId);
我想获取所有测验的列表,其中包含每个测验中的组件总数,以及任何给定 personId 的每个测验中正确/错误答案的数量。 比如:
quizTitle total_quiz_components correct_answers incorrect_answers
"Quiz 1" 3 2 1
"Quiz 2" 10 1 9
以下查询为我提供了测验中的所有行,以及每个测验包含的测验组件的总数。
SELECT q.quizTitle, count(qc.componentId) AS total_quiz_components FROM Quiz q
LEFT JOIN QuizComponents qc ON qc.quizId=q.quizId
GROUP BY q.quizId;
但后来我陷入了这种疯狂的关系中。
【问题讨论】:
标签: mysql join group-by mariadb