提问人:Moodle_Learner 提问时间:11/9/2023 最后编辑:jarlhMoodle_Learner 更新时间:11/10/2023 访问量:35
特殊的 Moodle SQL-Statement,用于获取所有经理和课程创建者的名字、姓氏、课程和邮件
Special Moodle SQL-Statement to get all managers and course-creators with firstname, lastname, course and mail
问:
是否可以在 Moodle 中进行 SQL 查询,该查询将为所有课程创建者和经理提供以下输出
|coursecategory ID|coursecategory name| firstname|lastname|emailadress|rule (manager/coursecreator)|
如果是,什么是 SQL 语句?
答:
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()
评论