PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Problem beim Erstellen der Where-Klausel zum Einschließen von Null/0-Werten

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