Documentación oficial
Foros
En esta sección se encuentran aquellas consultas que he ido creando y/o recopilando a medida que he ido aprendiendo la estructura de la base de datos. En este sentido algunas de ellas tienen tiempo y no puedo asegurar que funcione con la estructura actual de la base de datos de Moodle, por lo que recomiendo estudiarlas detenidamente y/o probarlas en un entorno de pruebas.
SELECT user.id FROM mdl_user user WHERE user.username="nombre de usuario";
SELECT user.id, user.firstname, user.lastname FROM mdl_user user WHERE user.firstname LIKE "%Albert%";
SELECT user.id, user.firstname, user.lastname FROM mdl_user user WHERE user.lastname LIKE "%Catalan%";
SELECT FROM_UNIXTIME(user_enrolments.timestart), FROM_UNIXTIME(user_enrolments.timeend) FROM mdl_user_enrolments user_enrolments WHERE user_enrolments.userid=222;
SELECT course.id, course.idnumber, course.fullname, course.shortname FROM mdl_course course WHERE course.fullname LIKE "%2012%"
SELECT user.id, user.firstname, user.lastname FROM mdl_role_assignments role_assignments INNER JOIN mdl_user user ON user.id=role_assignments.userid INNER JOIN mdl_context context ON role_assignments.contextid=context.id WHERE context.contextlevel=50 AND role_assignments.roleid=5 AND context.instanceid=ID
donde context.contextlevel 50 es para los cursos, role_assignments.roleid 5 para alumnos, context.instaceid sería el ID del curso que nos interesa
SELECT u.id, u.firstname, u.lastname FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND rs.roleid=5 AND e.instanceid=31 AND u.id NOT IN (SELECT u.id FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id INNER JOIN mdl_log l ON rs.userid=l.userid WHERE e.contextlevel=50 AND rs.roleid=5 AND e.instanceid=31 AND l.course=31 GROUP BY u.id)
Artículos