【问题标题】:MySQL - Show questions not answered beforeMySQL - 显示以前未回答的问题
【发布时间】:2011-12-04 14:53:59
【问题描述】:

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

情况如下:

  • 有一个表“问题”
    • 此表包含所有问题。有一个唯一字段 QuestionId。
    • 问题的 CategoryId 总是从 1 到 5
  • 有一个“答案”表
    • 此表包含用户给出的所有答案。会话 id 存储在 SessionId 中,回答的问题 id 存储在 QuestionId 中。

我现在正在寻找一个查询,

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

我自己的试验和一些谷歌搜索没有帮助。希望这里有人可以帮助我。

提前致谢!

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    试试这个:

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

    它将列出用户没有回答的所有问题。如果您需要,您可以对结果设置“限制”以仅返回 1 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2013-01-04
      • 2012-08-12
      相关资源
      最近更新 更多