Les adjunto mi diadrama:
Mi sql:
Código SQL:
Ver original
SELECT 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