Les cours sur lesquels est inscrit un utilisateur avec son rôle dans le cours
SELECT c.id, c.shortname, c.fullname, u.id, u.username, u.firstname, u.lastname, r.shortname as 'role' From mdl_user as u join mdl_user_enrolments ue on ue.userid=u.id AND u.id=18434 join mdl_enrol en on ue.enrolid=en.id join mdl_role_assignments ra on u.id=ra.userid join mdl_role r on ra.roleid=r.id join mdl_context cx on cx.id = ra.contextid and cx.contextlevel = 50 JOIN mdl_course c ON c.id = cx.instanceid AND en.courseid = c.id; AND u.id=18434;
Liste utilisateurs avec rôle
SELECT u.id,u.firstname,u.lastname,u.email,u.suspended,u.deleted,u.auth,FROM_UNIXTIME(u.firstaccess),FROM_UNIXTIME(u.lastaccess),FROM_UNIXTIME(u.lastlogin),r.name FROM mdl_user u INNER JOIN mdl_role_assignments ra ON ra.userid = u.id INNER JOIN mdl_context ct ON ct.id = ra.contextid INNER JOIN mdl_role r ON r.id = ra.roleid GROUP BY u.id ORDER BY u.lastlogin ASC INTO OUTFILE '/tmp/ead_user.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; ;
Les traces d'un utilisateur entre 2 dates
select eventname,target,courseid,FROM_UNIXTIME(timecreated) from mdl_logstore_standard_log where timecreated>1675688400 AND timecreated<1675702800 AND userid=78293;
Nbr de participants dans un ou plusieurs cours
SELECT c.id, c.shortname, c.fullname, u.id, u.username, u.firstname, u.lastname, r.shortname as 'role', FROM_UNIXTIME(ue.timecreated) From mdl_user as u join mdl_user_enrolments ue on ue.userid=u.id join mdl_enrol en on ue.enrolid=en.id AND (ue.timecreated>1688162400 AND ue.timecreated<1693951150) join mdl_role_assignments ra on u.id=ra.userid join mdl_role r on ra.roleid=r.id and r.shortname ='student' join mdl_context cx on cx.id = ra.contextid and cx.contextlevel = 50 JOIN mdl_course c ON c.id = cx.instanceid AND en.courseid and c.id>3606 GROUP BY c.id,u.id;