请仔细阅读以便您理解这个问题。这个问题适用于大学的作业。
有两个表,一个是Answer表,另一个是StudentAnswer表。我感兴趣的有6个领域,答案表有4个,StudentAnswer表有2个。以下是表格及其字段和数据。
答案 0 :(得分:0)
你需要在mysql中查看子查询,你的最终答案可能会像这样看待......
SELECT * FROM Question q
INNER JOIN (SELECT sa.QuestionId, sa.StudentAnswer, at.AnswerContent FROM StudentAnswer sa LEFT JOIN Answer at ON (sa.StudentAnswer = at.AnswerId AND sa.QuestionId = at.QuestionId) sq ON q.QuestionId = sq.QuestionId
JOIN Answer a ON sq.QuestionId = a.QuestionId
WHERE
(CorrectAnswer = '1')
ORDER BY $orderfield ASC
但是如果没有一个完整的架构,我无法真正帮助,我也会说小心我在大学(哈德斯菲尔德)的所有导师因为搜索他们的作业片段而臭名昭着,所以我希望这有帮助而不会得到你陷入困境
答案 1 :(得分:0)
我相信左联是你正在寻找的。
SELECT * FROM `StudentAnswer` as sa
LEFT JOIN (SELECT * FROM `Question` WHERE correct = 1) as q
ON `sa`.Questionid = q.id
答案 2 :(得分:0)
您可以在查询中多次加入Answer
,只需确保为其提供不同的别名即可。 WHERE子句和JOIN条件的组合现在可以为您提供问题的正确答案;考虑一下如何将StudentAnswer
和Answer
联系起来。