从课程中跟踪资源模块的最佳方法是什么。
这是我的尝试,但对指定资源ID感到不满意。
SELECT cmc.coursemoduleid
FROM mdl_course_modules_completion cmc
JOIN mdl_course_modules cm ON cm.id = cmc.coursemoduleid
JOIN mdl_modules m ON m.id= cm.module
WHERE cm.deletioninprogress=0
AND m.id IN (1,3,8,11,12,15,17,20)
答案 0 :(得分:0)
由于您使用的是(INNER)JOIN,因此您可以严格按照课程ID来严格记录结果:
SELECT cmc.coursemoduleid FROM mdl_course_modules_completion cmc JOIN mdl_course_modules cm ON cm.id = cmc.coursemoduleid AND cm.course = YOURCOURSEID JOIN mdl_modules m ON m.id= cm.module WHERE cm.deletioninprogress=0 AND m.name IN ('resource', 'page', 'url')
更新
有关模块作为资源的信息未存储在数据库中。但是您可以明确指出所有感兴趣的模块名称。唯一的缺点是,如果您决定安装新的资源第三方模块,则必须更新SQL