你需要使用合格列名来写你的查询。每个列引用都应该包含表名。这是一个好习惯;它可以防止您看到的结果等意外结果。
基于列的名字,我想你的查询是:
SELECT a.answer, a.answermark, a.answerid, a.questionid, q.quizid
FROM answer LEFT JOIN
questions q
ON a.answermark = a.questionid
---------^ I am guessing `answermark` comes from `answer`, not `questions`.
WHERE q.quizid = 1
ORDER BY a.answermark;
我不知道为什么一个名为answermark
列将被比作一个叫做questionid
列,无论表的来源。如果这是一个有效的比较,那么你的数据库命名约定很差。
我怀疑你想是这样的:
SELECT a.answer, a.answermark, a.answerid, a.questionid, q.quizid
FROM answer LEFT JOIN
questions q
ON q.questionid = a.questionid
WHERE q.quizid = 1
ORDER BY a.answermark;
显示我们的DB模式,样本数据和预期的输出。 \t请阅读[**如何提问**](http://stackoverflow.com/help/how-to-ask) \t \t这里是一个伟大的地方[** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)来了解如何提高您的问题质量并获得更好的答案。 –
我不会使用不同的,因为它隐藏了问题。看起来你在表结构上有一个设计上的缺陷导致重复记录的基数问题;或者你缺少连接标准。这两个表的键和外键是什么? – xQbert