Mapear informações filhas de uma categoria de curso: subcategorias, cursos e matrículas nos cursos com comando SQL

Mapear informações filhas de uma categoria de curso: subcategorias, cursos e matrículas nos cursos com comando SQL

por Lino Vaz Moniz -
Número de respostas: 0

Neste post vou compartilhar como gerar informação de uma categoria, contemplando todos os cadastros filhos no nível de subcategorias, cursos e inscrições 

Nos SQL  a seguir deve ser passado id de uma categoria de curso. Esse id deve ser colocado onde há ?

Gerar lista de todas as subcategorias filhas e inclincdo a própria categoria pai

SELECT ct.id,ct.name,ct.idnumber FROM mdl_course_categories ct WHERE ct.id=? OR ct.path LIKE '/?/%' ORDER BY ct.sortorder



Gerar listar cursos de uma categoria incluindo as subcategorias

SELECT c.id,c.fullname FROM mdl_course c INNER JOIN mdl_course_categories ct ON c.category=ct.id WHERE ct.id=? OR ct.path LIKE '/?/%' ORDER BY ct.sortorder



Gerar lista de inscrição em todos dos cursos vinculados a uma categoria incluindo as subcategorias filhas 

SELECT ue.id,u.id AS userid,u.username,u.email,u.firstname,u.lastname,c.id AS courseid,c.fullname,ue.timestart,ue.timeend FROM mdl_role_assignments rs INNER JOIN mdl_role r ON rs.roleid=r.id INNER JOIN mdl_user u ON rs.userid=u.id INNER JOIN mdl_context e ON rs.contextid=e.id INNER JOIN mdl_enrol en ON e.instanceid=en.courseid INNER JOIN mdl_user_enrolments ue ON en.id=ue.enrolid INNER JOIN mdl_course c ON c.id=en.courseid INNER JOIN mdl_course_categories ct ON c.category=ct.id WHERE e.contextlevel=50 AND rs.userid=ue.userid AND en.status=0 AND ue.status=0 AND (ct.id=? OR ct.path LIKE '/?/%')