在moodle 3.8中,角色老师的ID号是多少?

问题描述 投票:0回答:1
SELECT c.fullname, c.shortname, g.name, u.firstname, u.lastname, r.shortname
FROM prefix_course AS c
JOIN prefix_role_assignments AS ra
JOIN prefix_groups AS g ON c.id = g.courseid
JOIN prefix_role AS r
JOIN prefix_user AS u 
WHERE c.groupmode > 0 AND WHERE ra.roleid > 6

我想输入角色老师的ID号,而不是6。

sql moodle
1个回答
0
投票

为什么不简单地。

SELECT c.fullname, c.shortname, g.name, u.firstname, u.lastname, r.shortname
FROM prefix_course AS c
JOIN prefix_context ctx ON ctx.instanceid = c.id AND ctx.contextlevel = 50
JOIN prefix_role_assignments AS ra ON ra.contextid = ctx.id
JOIN prefix_groups AS g ON c.id = g.courseid
JOIN prefix_role AS r ON r.id = ra.roleid
JOIN prefix_user AS u ON u.id = ra.userid
WHERE c.groupmode > 0 AND r.shortname = 'teacher'

其中'50'是'course'的上下文级别。这将显示所有在课程级别拥有 "教师 "角色的用户,给出教师的名字,课程的名字和课程中存在的所有组的列表(每个组将有一个完整的行,并且不会考虑教师是否是该组的成员)。

请注意,这将只包括 "非编辑教师 "在列表中,如果您希望 "教师 "和 "非编辑教师",您将需要更改最后一行。

WHERE c.groupmode > 0 AND (r.shortname = 'teacher' OR r.shortname = 'editingteacher')
© www.soinside.com 2019 - 2024. All rights reserved.