Følgende skal returnere alle elever med score fra eksamen 32, hvis de findes.
SELECT scores.result,students.id,exam.name, exam.id
FROM exam
INNER JOIN scores ON exam.id = scores.exam_id
RIGHT OUTER JOIN students ON scores.user_id = students.user_id
WHERE exam.id = 32
Din select-klausul brugte ikke noget fra students_subjects eller aggregerede funktioner, så jeg er ikke sikker på, hvad joinforbindelsen til den var til? Måske kan du starte med ovenstående og bygge derfra.
Edit:Ny strategi baseret på min første kommentar. Prøv at finde alle elever, og find derefter resultater, der findes, null hvis ingen.
SELECT scores.result,students.id,exam.name, exam.id
FROM exam
INNER JOIN students_subjects ON students_subjects.group_id = exam.group_id
INNER JOIN students ON students_subjects.user_id = students.user_id
LEFT OUTER JOIN scores ON scores.user_id = students.user_id
AND scores.exam_id = exam.id
WHERE exam.id = 32