Mysql 如果答案为false,请选择正确的奇数

Mysql 如果答案为false,请选择正确的奇数,mysql,sql,Mysql,Sql,我的数据库中有3个表,分别是:问题,回答问题,赔率 第一个(问题)有一个问题列表 +=========================+ | ID | question | +=========================+ | 1 | Bla Bla | | 2 | question | | 3 | Other Question | +-------------------------+ 第二个问题(Answe

我的数据库中有3个表,分别是:
问题
回答问题
赔率

第一个(问题)有一个问题列表

+=========================+
|   ID   |    question    | 
+=========================+
|   1    |    Bla Bla     |
|   2    |    question    |
|   3    | Other Question |
+-------------------------+
第二个问题(AnswerQuestion)是用户对特定问题的回答

+==================================================+
|   ID   | idQuestion | idOdd | idUser | isCorrect |
+==================================================+
|   1    |    4       |     2 |     5  |     0     |
|   2    |    3       |     1 |     1  |     1     |
|   3    |    1       |     3 |     10 |     0     |
+--------------------------------------------------+
第三个(赔率)与正确的一个有被质疑的赔率

+============================================+
|   ID   |    odd   | idQuestion | isCorrect |
+============================================+
|   1    |    One   |          1 |     0     |
|   2    |    Two   |          1 |     1     |
|   3    |   Three  |          1 |     0     |
+--------------------------------------------+
因此,要获取特定用户的答案,请执行以下操作:

SELECT * FROM answerquestion a, question q, odds o
WHERE a.IdUser = :id AND a.IdOdd = o.ID AND a.IdQuestion = q.ID
它的工作很好,但我想得到正确的奇数,如果用户的答案是假的 为此,我在SQL上使用
IF
语句,查询是:

SET SQL_BIG_SELECTS=1;
SELECT DISTINCT IF(o.isCorrect = 0, o.Corr.TheCorr, o.odd), q.Question
FROM answerquestion a, odds o, question q,
  ( SELECT o.odd AS TheCorr FROM odds o, question q WHERE o.isCorrect = 1 AND o.IdQuestion = q.ID) AS Corr
WHERE a.IdUser = 5
AND q.ID = a.idQuestion
AND a.IdOdd = o.ID
这个问题的答案是错误的,它给我所有问题的正确答案,并复制问题

例如:

Question ID 4 'Bla Bla' | Correct odd of Question ID 1
Question ID 4 'Bla Bla' | Correct odd of Question ID 2
Question ID 4 'Bla Bla' | Correct odd of Question ID 3
Question ID 4 'Bla Bla' | Correct odd of Question ID 4
Question ID 4 'Bla Bla' | Correct odd of Question ID 5
如果我想知道问题ID 4的答案,我需要得到正确的奇数

Question ID 4 'Bla Bla' | Correct odd of Question ID 4

有什么帮助吗?

需要使用正确的连接。不确定应该选择哪些列,但这很容易修复

SELECT q.id, q.question, o.odd as correct, o2.odd as user_odd
FROM question q
JOIN AnswerQuestion a ON a.idQuestion = q.id
JOIN Odds o ON o.questionID = q.id AND o.isCorrect = 1
JOIN Odds o2 ON o2.id = a.idOdd
WHERE a.idUser = 5

请提供其他表,如果我们不知道模式,我们不能help@DDS我把它加上去了,比如说,陛下?这是一个怎样的例子?谢谢你的帮助,先生,我的问题是我想得到正确的几率如果用户的答案不正确,你的查询得到一个问题的错误几率(不止一个)我希望你能理解我的坏习惯English@ThaSayou我将检查
isCorrect
更改为1。我尝试此查询
SELECT*FROM question q JOIN answera on a.idQuestion=q.id JOIN赔率o on o.questionID=q.id和o.isCorrect=1,其中a.IdUser=5
此查询返回问题的正确奇数,但是我想显示用户的奇数+正确的奇数的答案。有什么帮助吗?