1

ひゃーギャング!

アドホックに実行して、コースに登録していないすべてのユーザーを見つけることができるレポートを見つけようとしています。コースを修了していない登録済みの人のレポートがありますが、この検索で​​は、登録さえしていない特定の学生は見つかりません。

現在のコードは

SELECT u.lastname, u.firstname , u.email , c.fullname, 

DATE_FORMAT(FROM_UNIXTIME(cc.timecompleted),'%m/%d/%Y %T') AS 'Completed'

FROM 
prefix_role_assignments AS ra
JOIN prefix_context AS context ON context.id = ra.contextid 

AND
context.contextlevel = 50 JOIN prefix_course AS c ON c.id = context.instanceid

AND
 c.fullname LIKE "SAMPLE_COURSE_NAME" 
JOIN prefix_user AS u ON u.id = ra.userid 
JOIN prefix_course_completions AS cc ON cc.course = c.id 
AND cc.userid = u.id

ORDER BY
cc.timecompleted,
u.lastname,
u.firstname

何かご意見は??

4

2 に答える 2

2

これは、コースに登録していないすべてのユーザーをリストしますが、大きなリストになる可能性があります。

xxxコースIDに置き換えます

SELECT u.id AS userid, u.firstname, u.lastname, u.email
FROM mdl_user u
WHERE u.deleted = 0
AND u.suspended = 0
AND NOT EXISTS (
    SELECT ue.userid
    FROM mdl_user_enrolments ue
    JOIN mdl_enrol e ON e.id = ue.enrolid AND e.courseid = xxx
    WHERE ue.userid = u.id
)
于 2021-10-13T08:13:57.310 に答える