Verschieben Sie die teacher_students.teacher_id = 1
überprüfen Sie von WHERE
-Klausel zum beitretenden ON
Klausel.
Wenn eine Bedingung auf eine Tabelle auf der rechten Seite eines LEFT JOIN
verweist in die WHERE-Klausel gesetzt wird, wird der LEFT JOIN abgebrochen und fungiert als INNER JOIN
.
SELECT count(teacher_students.student_id) AS rcount <--- changed
, questions.id
FROM "questions"
LEFT JOIN answers
ON answers.question_id = questions.id
LEFT JOIN teacher_students
ON teacher_students.student_id = answers.student_id
AND teacher_students.teacher_id = 1
WHERE questions.test_id = 1
GROUP BY questions.id
ORDER BY questions.id