結果は1つのユーザーID(WHERE mcc.userid = $ user_id)に制限されているようですが、複数の学生の詳細を取得したいと考えています。
各学生+コースの組み合わせごとにmdl_course_completionsテーブルが1つしかないので、実際にはmdl_courseまたはmdl_userテーブルに参加する必要はありません。
ただし、「timecompleted」フィールドには、ヌルでないことを確認するための制限を追加する必要があります(mdl_course_completionsレコードは、生徒がコースを開始したときに作成され、タイムインタイムとタイムスタンプを記録します。タイムコンプリートフィールドも同様に設定されます)。
これはあなたを与える必要があります。各学生が完了した数のコースを一覧表示されます
SELECT userid AS student_id, COUNT(*) AS completed_courses
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL
。
場合は、代わりに(と質問の開始時に述べたように)、あなたは少なくとも1つのコースを完了している学生の数をしたい、クエリは次のようになります。
SELECT DISTINCT(userid)
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL