MySQL - 显示之前未回答的问题

时间:2011-12-04 14:54:00

标签: php mysql sql

我正在尝试进行一项测验,该测验应显示同一用户之前未回答的问题。 因此,当用户开始测验时会创建会话。

情况如下:

  • 有一个表“问题”
    • 此表包含所有问题。有一个独特的字段QuestionId。
    • 问题的CategoryId始终为1到5
  • 有一个表“答案”
    • 此表包含用户提供的所有答案。会话ID存储在SessionId中,已回答的问题ID存储在QuestionId中。

我现在正在寻找

的查询
  • 从问题中提取问题
    • 其中类别ID = X
    • 以前没有回答过(因此QuestionId不应该在具有相同SessionId的Answers中列出)

我自己的试验和一些谷歌搜索没有帮助。希望有人能帮到我。

提前致谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

select 
    * 
from 
    question 
where 
    categoryid = x and 
    not exists (
        select 
            '1' 
        from 
            answers 
        where 
            sessionid = y and 
            answers.questionid = question.questionid
    )

它将列出所有没有用户答案的​​问题。你可以对结果设置一个“限制”,如果你需要的话,只能返回1行。