Herramientas de usuario

Herramientas del sitio


moodle:sql

Consultas SQL (Moodle)

Consultas

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.

Muestra el ID de un usuario dado su nombre de usuario

SELECT user.id
FROM mdl_user user
WHERE user.username="nombre de usuario";

Muestra información de usuarios que coincidan con un nombre

SELECT user.id, user.firstname, user.lastname
FROM mdl_user user
WHERE user.firstname LIKE "%Albert%";

Muestra información de usuarios que coincidan con un apellido

SELECT user.id, user.firstname, user.lastname
FROM mdl_user user
WHERE user.lastname LIKE "%Catalan%";

Muestra las fechas de finalización e inicio dado un ID de usuario (pendiente relacionarla con cursos y/o enrol para ver los cursos

SELECT FROM_UNIXTIME(user_enrolments.timestart), FROM_UNIXTIME(user_enrolments.timeend)
FROM mdl_user_enrolments user_enrolments
WHERE user_enrolments.userid=222;

Muestra los cursos que contengan un termino

SELECT
  course.id, course.idnumber, course.fullname, course.shortname
 FROM
  mdl_course course
 WHERE
  course.fullname LIKE "%2012%"

Alumnos de un curso

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

Alumnos sin acceso a un curso determinado

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

Ad-Hoc Contributed Reports

moodle/sql.txt · Última modificación: 2023/07/07 14:04 por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki