能否编写Moodle SQL查询获取课程管理者与创建者信息?
在Moodle中查询课程分类管理者与创建者信息
可行,直接查询Moodle数据库即可获取所需信息。以下是适配标准Moodle数据库结构的SQL语句(若你的Moodle使用了自定义表前缀,请将语句中的mdl_替换为实际前缀):
SELECT cc.id AS 'coursecategory ID', cc.name AS 'coursecategory name', u.firstname, u.lastname, u.email AS 'emailadress', CASE WHEN r.shortname = 'coursecreator' THEN 'coursecreator' WHEN r.shortname = 'manager' THEN 'manager' END AS 'rule (manager/coursecreator)' FROM mdl_course_categories cc JOIN mdl_context ctx ON ctx.instanceid = cc.id AND ctx.contextlevel = 40 JOIN mdl_role_assignments ra ON ra.contextid = ctx.id JOIN mdl_role r ON ra.roleid = r.id JOIN mdl_user u ON ra.userid = u.id WHERE r.shortname IN ('coursecreator', 'manager') ORDER BY cc.id, r.shortname;
语句说明:
mdl_course_categories:存储课程分类的基础信息,对应输出的分类ID和名称mdl_context:关联课程分类的上下文(contextlevel = 40是Moodle中课程分类的固定上下文级别)mdl_role_assignments:记录用户与角色的绑定关系mdl_role:通过角色短名筛选出目标角色(课程创建者coursecreator、管理者manager)CASE语句将角色短名转换为需求中的规则描述格式
内容的提问来源于stack exchange,提问作者D-T
相关产品推荐
相关产品推荐

