いつもお世話になっております。村上です。
色々と質問をさせていただき、運用に利用させていただいております。
履修登録の修正作業を行っており、困ったため書き込みさせていただきました。
SQLにて「手動登録」で登録となった学生と「自己登録」で登録となった学生を
見分ける手段はありますでしょうか?
自己登録で登録されたユーザの一覧を取得したいと思っております。
Moodleは3.8.1、php7.2.11、mariadbは10.3.17になります。
> 自己登録で登録されたユーザの一覧を取得したいと思っております。
「/tmp」ディレクトリにCSVファイル「self_enrolled_users.csv」を出力する以下のようなSQL文ではいかがでしょうか。
(SELECT 'coursee fullname','course shortname','enroll method','username','lastname','firstname','email address','time enrolled')
UNION
(SELECT CS.fullname,CS.shortname,EN.enrol,US.username,US.lastname,US.firstname,US.email,from_unixtime(UE.timecreated)
FROM
mdl_course AS CS
JOIN mdl_enrol AS EN
ON CS.id = EN.courseid AND EN.enrol = 'self'
JOIN mdl_user_enrolments AS UE
ON UE.enrolid = EN.id
JOIN mdl_user AS US
ON US.id = UE.userid
INTO OUTFILE '/tmp/self_enrolled_users.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n');
画面に表示する場合は以下のとおりです。
SELECT CS.fullname AS 'Coursee Fullname', CS.shortname AS 'Course Shortname', EN.enrol AS 'Enroll method', US.username AS'Username', US.lastname AS 'Lastname', US.firstname AS 'Firstname', US.email AS 'email address', from_unixtime(UE.timecreated) AS 'time enrolled'
FROM
mdl_course AS CS
JOIN mdl_enrol AS EN
ON CS.id = EN.courseid AND EN.enrol = 'self'
JOIN mdl_user_enrolments AS UE
ON UE.enrolid = EN.id
JOIN mdl_user AS US
ON US.id = UE.userid;
Yoshida様、お返事ありがとうございます。
連絡ありがとうございました。
活用して無事に抽出することが出来ました。
本当に助かりました。
以上、宜しくお願い致します。