小编Vai*_*hak的帖子

Group By Three列在CodeIgniter中不起作用

我需要一个Group By三列的结果,SQL完美无缺.我在CodeIgniter框架中使用它时遇到了这个问题; 它不执行查询.我的代码和SQL如下.

$this->db->select(['trk.userid AS user_id', 'scr.course AS course_id'])
                     ->from('mdl_scorm scr')
                     ->join('mdl_scorm_scoes_track trk', 'scr.id = trk.scormid', 'inner')
                     ->join('mdl_course_modules mcs', 'mcs.instance = scr.id', 'inner')
                     ->where_in('trk.value', ['completed','incomplete','passed'])
                     ->group_by(['scr.course', 'trk.userid', 'trk.scormid'])
                     ->order_by('trk.userid', 'DESC');
Run Code Online (Sandbox Code Playgroud)

SQL

SELECT `trk`.`userid` AS user_id, `scr`.`course` AS course_id 
FROM (`mdl_scorm` scr) 
INNER JOIN `mdl_scorm_scoes_track` trk ON `scr`.`id` = `trk`.`scormid` INNER JOIN `mdl_course_modules` mcs ON `mcs`.`instance` = `scr`.`id` 
WHERE `trk`.`value` IN ('completed', 'incomplete', 'passed') 
GROUP BY `scr`.`course`, `trk`.`userid`, `trk`.`scormid` 
ORDER BY `trk`.`userid` DESC LIMIT 0,100;
Run Code Online (Sandbox Code Playgroud)

当group_by只有两列时,这样可以正常工作,例如

->group_by(['scr.course', 'trk.userid'])
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

php mysql mysqli group-by codeigniter

6
推荐指数
1
解决办法
9654
查看次数

标签 统计

codeigniter ×1

group-by ×1

mysql ×1

mysqli ×1

php ×1