Buen día,
Posiblemente a alguno de ustedes les han solicitado un reporte o lista de los examenes o documentos que sean mandatorios para el alumnos, dentro de un curso.
Pues bien les dejo este Query (El cual está validado desde la versión 2.1 a la versión 2.6 con MySQL) esperando que algún día les sea de utilidad.
SELECT CONCAT(name,' ','(Mandatory)') AS name FROM (SELECT instance,name,mcm.course FROM moodle.mdl_course_modules AS mcm INNER JOIN moodle.mdl_quiz AS mq ON mq.id = mcm.instance AND mcm.course = mq.course
UNION SELECT instance,name,mcm.course FROM moodle.mdl_course_modules AS mcm INNER JOIN moodle.mdl_url AS mu ON mu.id = mcm.instance AND mcm.course = mu.course
UNION SELECT instance, name, mcm.course FROM moodle.mdl_course_modules AS mcm INNER JOIN moodle.mdl_page AS mq ON mq.id = mcm.instance AND mcm.course = mq.course) as Itmes
INNER JOIN (SELECT mcm.course,mcm.instance FROM moodle.mdl_course_completion_criteria AS mccc
INNER JOIN moodle.mdl_course_modules AS mcm ON mccc.moduleinstance = mcm.id ) AS Mandatories ON Mandatories.instance = Itmes.instance AND Itmes.course = Mandatories.course
Lo que hace el query es unir el nombre de los tres recursos (url's, pages y quizzes) y hago un Inner Join con la tabla mdl_course_modules el cual contiene los recursos que son mandatorios para el usuario.
Si tienen alguna duda hagamenla saber
Saludos