2016-04-05 80 views
0

什麼是查詢找不到。的在MOODLE完成課程的學生? 我使用follwing查詢:學生完成的課程數量.MOODLE

選mu.id如student_id數據,計數(mcc.course)作爲completed_course從mdl_user畝上mcc.userid = mu.id JOIN上mc.id = MCC mdl_course MC加入mdl_course_completions MCC。當然如果mcc.userid = $ user_id group by mu.id

回答

0

我注意到你似乎已經限制了結果只有一個用戶id(WHERE mcc.userid = $ user_id),所以你應該刪除那個限制if你想獲得不止一個學生的詳細信息。

您並不需要加入mdl_course或mdl_user表,因爲每個學生+課程組合只有一個mdl_course_completions表。

但是,您應該爲'timecompleted'字段添加一個限制,以確保它不爲null(mdl_course_completions記錄是在學生開始課程時創建的,記錄已註冊時間和時間開始的時間;當課程爲完成timecompleted字段的設置)。

這應該給你:

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