You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Moodle中作业关联量规:查询课程作业及量规标准的技术需求

完善Moodle量规关联查询的SQL语句

刚好帮你把这个查询补全,直接就能拿到单门课程里所有已用量规的全局概览,完美解决你没法直观查看的问题。

完整SQL查询语句

SELECT 
    cou.fullname AS course_name,
    ass.name AS assignment_name,
    def.name AS rubric_name,
    cri.description AS rubric_criterion
FROM 
    mdl_course cou
INNER JOIN 
    mdl_assign ass ON ass.course = cou.id
INNER JOIN 
    mdl_course_modules cmod ON cmod.course = cou.id AND cmod.instance = ass.id
INNER JOIN 
    mdl_context ctx ON ctx.instanceid = cmod.id AND ctx.contextlevel = 70 -- 70代表课程模块上下文
INNER JOIN 
    mdl_grading_areas are ON are.contextid = ctx.id AND are.component = 'mod_assign' -- 指定作业组件
INNER JOIN 
    mdl_grading_definitions def ON def.areaid = are.id AND def.method = 'rubric' -- 筛选量规类型的评分定义
INNER JOIN 
    mdl_grading_criteria cri ON cri.definitionid = def.id
-- 可选:指定单门课程,替换成你的课程ID
WHERE 
    cou.id = <你的课程ID>
ORDER BY 
    cou.fullname, ass.name, def.name;

关键说明

  • 我补充了几个核心关联条件,避免出现无关数据:

    • 给mdl_course_modules加了cmod.instance = ass.id,确保关联的是当前作业对应的课程模块
    • 给mdl_context加了ctx.contextlevel = 70,限定是课程模块级别的上下文(Moodle里不同上下文对应不同level值,70专门指代课程模块)
    • 给mdl_grading_areas加了are.component = 'mod_assign',只关联作业类的评分区域
    • 给mdl_grading_definitions加了def.method = 'rubric',确保只筛选用量规(rubric)的评分定义
  • 返回字段清晰对应需求:

    • course_name:课程全名
    • assignment_name:使用量规的作业名称
    • rubric_name:对应量规的名称
    • rubric_criterion:量规里的具体标准描述

使用小提示

  1. 要是想查看所有课程的量规使用情况,直接删掉最后的WHERE cou.id = <你的课程ID>这一行就行
  2. 可以根据需求调整ORDER BY的字段,比如改成按量规名称排序
  3. 如果需要更多信息(比如作业截止时间、量规创建时间),直接在SELECT里添加对应字段就行,比如ass.duedate、def.timecreated

内容的提问来源于stack exchange,提问作者Keun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:33:36