Query en Mysql para sacar listado de estudiantes por grupos

Query en Mysql para sacar listado de estudiantes por grupos

de Rosalba Correa -
Número de respuestas: 2

Buenas tardes, a quien me pueda colaborar mil gracias.

Mi base de datos que uso con moodle es para un colegio y está organizada de la siguiente manera:

Creé categorias con el nombre de cada grado, dentro de esas categorias creé subcategorias con el número de salón de cada grado, finalmente dentro de esas subcategorias creé cursos con el nombre de las asignaturas para cada grado.

Ejemplo: Categoria ONCE, subcategoria 1101, cursos MATEMATICAS, CIENCIAS SOCIALES etc.

Todo funciona correctamente cada grado tienen los estudiantes como debe ser y demás.

Ahora me han pedido que saque un listado por cada grado y lo estoy haciendo desde la base de datos con una consulta pero me sale el mismo listado de estudiantes de primero a once, es como si sólo existieran 34 estudiantes y todos estuvieran en todos los grados, me sercioré de que no es asi, ingresando a cada grupo y revisando en calificaciones, allí me sale un número diferente de estudiantes en cada grado y todos los estudiantes con datos diferentes, he utilizado la misma consulta varias veces y nunca me había sucedido, a quien me pueda ayudar mil gracias.

Consulta:

SELECT mdl_user.username, mdl_user.firstname, mdl_user.lastname, mdl_course_categories.name FROM mdl_course_categories

INNER JOIN mdl_context ON mdl_context.instanceid = mdl_course_categories.id

INNER JOIN mdl_role_assignments ON mdl_context.id = mdl_role_assignments.contextid

INNER JOIN mdl_role ON mdl_role.id = mdl_role_assignments.roleid

INNER JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid

WHERE mdl_role.id = 5 AND mdl_course_categories.id = 3

ORDER BY mdl_user.firstname

 

aquí lo único que cambio siempre es el valor a: mdl_course_categories.id = ?

colocando el valor de cada categoria.

Muchas gracias.

Saludos.

Promedio de valoraciones: -
En respuesta a Rosalba Correa

Re: Query en Mysql para sacar listado de estudiantes por grupos

de Sandra Piedrabuena -
Lista alumnos de un curso por asignaturas:
SELECT
 mdl_user.id
 ,mdl_course.fullname
 ,mdl_course_categories.name
 ,mdl_course_categories.description
 ,mdl_user.idnumber
 ,mdl_user.firstname
 ,mdl_user.lastname
FROM mdl_user
INNER JOIN mdl_role_assignments
ON (mdl_user.id = mdl_role_assignments.userid)
 INNER JOIN mdl_context
  ON (mdl_role_assignments.contextid = mdl_context.id)
  INNER JOIN mdl_course
 ON (mdl_context.instanceid = mdl_course.id)
  INNER JOIN mdl_course_categories
  ON (mdl_course.category = mdl_course_categories.id)
WHERE mdl_context.contextlevel = 50 and
 mdl_role_assignments.roleid = 5 and
  mdl_course_categories.id =2621103
En respuesta a Sandra Piedrabuena

Re: Query en Mysql para sacar listado de estudiantes por grupos

de Daniela Suárez -

Muy buena la ayuda de San Pi. Necesitaba la consulta de la lista de estudiantes de un curso, pero de acuerdo a el nombre del curso, además necesitaba que se ordenaran de manera ascendente de acuerdo al apelido, así lo hice: 

SELECT mdl_user.lastname, mdl_user.firstname 

FROM mdl_user 

INNER JOIN mdl_role_assignments ON (mdl_user.id = mdl_role_assignments.userid) 

INNER JOIN mdl_context ON (mdl_role_assignments.contextid = mdl_context.id) 

INNER JOIN mdl_course ON (mdl_context.instanceid = mdl_course.id) 

INNER JOIN mdl_course_categories ON (mdl_course.category = mdl_course_categories.id) 

WHERE mdl_context.contextlevel = 50 and mdl_role_assignments.roleid = 5 and mdl_course.fullname = 'Matematicas 902' 

ORDER BY mdl_user.lastname ASC


sonrisa