特殊的 Moodle SQL 语句,可获取所有经理和课程创建者的名字、姓氏、课程和邮件

问题描述 投票:0回答:1

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

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

如果是,SQL语句是什么?

sql moodle
1个回答
0
投票

试试这个

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()

© www.soinside.com 2019 - 2024. All rights reserved.