LEFT JOIN entre las alumno y solucion_premisa.
Ya que la solución_premisa sólo puede tener registyros relacinados si el alumno generó una solución, si no hizo el ejercicio no tendrá registros relacionados con el alumno
Es decir, mas o menos así (a vuelo de pájaro):
Código SQL:
Ver originalSELECT ...
FROM alumno A LEF JOIN solucion_premisa SP ON A.alumno_id = SP.alumno_id
INNER JOIN premisa P ON SP.premisa_id = p.premisa_id
INNER JOIN ejercicio E ON p.ejercicio_id = E.ejercicio_id
WHERE [condiciones] OR SP.alumno_id IS NULL;