Hola muy buenos dias. Estoy un poco enroscando en una consulta que me parece que se puede resolver mas sencilla pero no encuentro la manera
Les adjunto mi diadrama:
Mi sql:
Código SQL:
Ver originalSELECT DISTINCT M.ID_MODULO,
M.ID_CURSO,
M.MODULO_NUMERACION,
M.MODULO_TITULO,
M.MODULO_DESCRIPCION_CORTA
FROM modulo M
INNER JOIN (SELECT DISTINCT ID_MODULO,
ID_ACTIVIDAD
FROM actividad) A ON M.ID_MODULO = A.ID_MODULO
LEFT JOIN resolucion_actividad ra ON A.ID_ACTIVIDAD = ra.ID_ACTIVIDAD
WHERE 1=1
AND M.ID_CURSO = $id_curso
AND M.ID_MODULO NOT IN (SELECT DISTINCT M.ID_MODULO
FROM modulo M
INNER JOIN (SELECT DISTINCT ID_MODULO, ID_ACTIVIDAD FROM actividad) A ON M.ID_MODULO = A.ID_MODULO
LEFT JOIN resolucion_actividad ra ON A.ID_ACTIVIDAD = ra.ID_ACTIVIDAD
WHERE 1=1
AND M.ID_CURSO = $id_curso
AND ra.ID_RESOLUCION_ACTIVIDAD IS NOT NULL)
Lo que necesito es. Mostrar los modulos (de un determinado cliente) que sus actividades no tienen resolucion. Si tiene alguna resolucion, lo oculta
Si alguien me puede ayudar me haria un favor. Aclaro que esto esta funcionando bien pero se me hizo una consulta enorme para un dato bastante sencillo. Capaz algun encuentra una mejor solucion