你需要使用合格列名來寫你的查詢。每個列引用都應該包含表名。這是一個好習慣;它可以防止您看到的結果等意外結果。
基於列的名字,我想你的查詢是:
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