当我谈到MySQL时,我仍然在学习,我试图将问题与它的答案组合在一起(就像你会在学校进行测试一样)。下面是我和我的查询得到的结果:来自LEFT_JOIN的意外结果。 (返回空值)
预期的结果是底部的4行,所有的数据是可用的。这个(对我来说)更令人困惑的部分是,我的任何列中的值都不是NULL
,所以我不明白为什么它会被返回。
是LEFT_JOIN
不是正确的方法来执行此?如果不是,那是什么?很感谢链接到详细的文档。
这里是我当前的查询:
SELECT
Q.question_id,
Q.question,
Q.account_id,
A.answer,
A.correct
FROM quiz_answers A LEFT JOIN quiz_questions Q ON
A.question_id = Q.question_id
AND A.account_id = Q.account_id
AND A.account_id = 48
AND Q.account_id = 48
ORDER BY Q.question_id;
查询仍返回不符合条件的行,但与NULL
,而不是数据填充的结果。查询的预期结果是上面提供的图像中的底部4行。
将'AND A.account_id = 48 AND Q.account_id = 48'移到where条件而不是连接子句。 –
http://blog.codinghorror。com/a-visual-explanation-of-sql-joins/ –
@AbhikChakraborty这就是我想要的,谢谢。似乎它会产生相同的结果,只是阅读它。 – Hobbyist