mysql - SQL 缺少记录问题

标签 mysql sql database relational-database

大家好,对于这个愚蠢的问题,我深表歉意,但我遇到了一个问题,希望你们能给我指出正确的方向——请耐心等待,我是一个完全的初学者。 我设置了三个表,大致如下所示:

table 1 quizquestions
Question ID, etc.
Int

table 2 quizanswers
AnswerID, QuestionID,correct Answer
Int         Int         Bool

table 3 useranswers
UserAnswerID, AnswerID, QuestionID
Int                Int         Int

我的问题是当我运行这样的查询时:

SELECT A.AnswerID AS Answer, UA.AnswerID AS UserAnswer 
FROM quizanswers AS A, useranswers UA 
WHERE A.CorrectAnswer = TRUE 
  AND UA.QuestionID 
  AND  A.QuestionID = X

查询将返回如下结果:

Answer UserAnswer 
  1        1

如果quizanswers 和useranswers 表中都有记录,查询将成功返回结果。但是,问题是当 useranswers 表中没有记录时,不会返回任何结果。如果上面的代码不够清晰,我深表歉意,在此先感谢您。

最佳答案

我不确定我是否理解问题背后的商业案例,但这会为您提供测验答案的记录,即使用户答案中没有相应的记录也是如此:

    SELECT A.AnswerID AS Answer, UA.AnswerID AS UserAnswer FROM quizanswers AS A LEFT JOIN useranswers UA ON UA.QuestionID = A.QuestionD WHERE A.CorrectAnswer = TRUE AND A.QuestionID = X

关于mysql - SQL 缺少记录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713577/

相关文章:

python - 需要关于MMORPG数据模型设计、数据库访问和stackless python的建议

mysql - 在 MySQL 中设计数据库时的最佳实践

php - Laravel 5.4 firstOrCreate 或 firstOrNew 如果唯一只是 id

PHP 检查是否过了 10 分钟

mysql - 将值从 MySQL 中的一个表复制到另一个表

mysql - 如何从 Mysql 中获取最新行

php - 需要帮助改进我的聊天系统

mysql - 在 groupby 期间聚合满足条件的列的部分部分

mysql - 检查 MySQL 中的日期是否即将到来或过去

mysql select between 还是什么?