У меня есть приложение, в котором пользователи могут сдавать тесты (которые состоят из вопросов и ответов).
Я пытаюсь создать запрос, который возвращает количество ответов, сгруппированных по вопросам, для конкретного учителяи проверить.Проблема в том, что я хочу, чтобы запрос возвращал 0 для вопросов без ответов.
ответов
- id
- question_id
- test_id
- student_id
вопросы
teacher_students
тесты
Запрос
SELECT COUNT(answers.id) AS rcount,
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
WHERE (questions.test_id = 1)
AND (teacher_students.teacher_id = 1)
GROUP BY questions.id
ORDER BY questions.id
Вывод
rcount | question_id
--------+----
4 | 1
2 | 3
Требуемый вывод
rcount | question_id
--------+----
4 | 1
0 | 2
2 | 3
0 | 4
Если я уберу teacher_students.teacher_id = 1
, количество возвращенных вопросов будет правильным, но количество не будет.