特殊的 Moodle SQL-Statement,用于获取所有经理和课程创建者的名字、姓氏、课程和邮件

Special Moodle SQL-Statement to get all managers and course-creators with firstname, lastname, course and mail

提问人:Moodle_Learner 提问时间:11/9/2023 最后编辑:jarlhMoodle_Learner 更新时间:11/10/2023 访问量:35

问:

是否可以在 Moodle 中进行 SQL 查询,该查询将为所有课程创建者和经理提供以下输出

|coursecategory ID|coursecategory name| firstname|lastname|emailadress|rule (manager/coursecreator)|

如果是,什么是 SQL 语句?

SQL Moodle

评论


答:

1赞 Russell England 11/10/2023 #1

试试这个

SELECT cc.id AS catid,
        cc.name AS catname,
        u.firstname,
        u.lastname,
        u.email,
        r.name AS rolename
FROM mdl_course_categories      cc
JOIN mdl_context cx ON cx.instanceid = cc.id AND cx.contextlevel = '40' /* CONTEXT_COURSECAT */
JOIN mdl_role_assignments ra ON ra.contextid = cx.id
JOIN mdl_role r ON r.id = ra.roleid
JOIN mdl_user u ON u.id = ra.userid

复制自 https://docs.moodle.org/403/en/ad-hoc_contributed_reports#Role_assignments_on_categories

请注意,一个用户在一个类别中可以有多个角色,因此您可能希望使用组 concat 函数

MySQL的 -GROUP_CONCAT()

Postgresql的 -string_agg()