什么是查询以找不到。已经完成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
答案 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