是否可以在 Moodle 中进行 SQL 查询,为所有课程创建者和管理者提供以下输出
|coursecategory ID|coursecategory name| firstname|lastname|emailadress|rule (manager/coursecreator)|
如果是,SQL语句是什么?
试试这个
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
请注意,一个用户在一个类别中可以拥有多个角色,因此您可能需要使用组连接功能
MySql -
GROUP_CONCAT()
Postgresql -
string_agg()