У меня есть следующие 4 таблицы:
Teacher: id, teacher
Student: id, student
Quiz: id, teacher_id, answer, dis_1, dis_2, dis_3
Intermediate: id, student_id, teacher_id, score
Учителя создают викторины, а студенты - викторины. Промежуточная таблица отслеживает результаты тестов с соответствующими идентификаторами.
Я хотел бы вернуть все тесты и указать либо балл студента, либо то, что они его не взяли.
Если они не прошли тест, в промежуточной таблице не будет записи для этого ученика. Если они пройдут тест, то промежуточная таблица будет иметь счет.
Это мое заявление:
SELECT Quiz.question as question,
Quiz.id as id, Quiz.title as title,
Quiz.teacher_id as teacher_id, Teacher.teacher as teacher,
Quiz.answer as answer, Quiz.dis_1 as dis1,
Quiz.dis_2 as dis2, Quiz.dis_3 as dis3,
Intermediate.score as score
FROM Teacher, Intermediate
RIGHT JOIN Quiz ON Quiz.id = Intermediate.quiz_id
RIGHT JOIN Student ON Student.id = Intermediate.student_id
WHERE Quiz.teacher_id = Teacher.id
Когда я пробую это утверждение, я получаю все пройденные тесты, и в нем отображается оценка для того, кто только что его принял. Я хочу, чтобы он просто отображал счет, если он существует в промежуточной таблице.