学生完成的课程数量.MOODLE

时间:2016-04-05 06:19:32

标签: moodle

什么是查询以找不到。已经完成MOODLE课程的学生?  我正在使用以下查询:

选择mu.id作为student_id,计数(mcc.course)作为completed_course从mdl_user mu加入mdl_course_completions mcc on mcc.userid = mu.id JOIN mdl_course mc on mc.id = mcc.course WHERE mcc.userid = $ user_id分组由mu.id

1 个答案:

答案 0 :(得分:0)

我注意到您似乎将结果限制为仅限一个用户ID(WHERE mcc.userid = $ user_id),因此如果您想获取多个学生的详细信息,则应该删除该限制。

您并不需要加入mdl_course或mdl_user表,因为每个学生+课程组合只有一个mdl_course_completions表。

但是,您应该对“时间已完成”和“时间”添加限制。字段,以确保它不为空(当学生开始课程时创建mdl_course_completions记录,记录已登记的时间和开始时间;当课程完成时,也设置时间完成字段)。

这应该给你:

SELECT userid AS student_id, COUNT(*) AS completed_courses
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL

其中列出了每个学生已完成的课程数。

如果您想要完成至少一门课程的学生人数(并且如问题开头所述),那么查询将是:

SELECT DISTINCT(userid)
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL