使用 CodeIgniter 分组

新手上路,请多包涵

我在我的项目中使用 CodeIgniter,这是我在模型中的代码

public function group_all_ville(){
        $this->db->select('*');
        $this->db->from('departement');
        $this->db->join('villes', 'villes.num_dept = departement.num_dept');
        $this->db->group_by('nom_dept');
        $query = $this->db->get();
        return $query->result();
    }

这是执行后的错误

A Database Error Occurred

Error Number: 1055

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'pneu.departement.id_dept' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

SELECT * FROM `departement` JOIN `villes` ON `villes`.`num_dept` = `departement`.`num_dept` GROUP BY `nom_dept`

Filename: C:/wamp64/www/pneu/system/database/DB_driver.php

Line Number: 691

我尝试了不同的方法但没有结果。谢谢

原文由 Tojo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

也使用 order_by 子句

$this->db->group_by('nom_dept');
$this->db->order_by('nom_dept', 'asc');  # or desc

仅供参考: 设置 SQL 模式和会话集并不能修复实际错误。

例子( 最好不要做

  1. https://stackoverflow.com/a/35729681/4595675

原文由 Abdulla Nilam 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个解决方案对我有用:

 $this->db->select('d.nom_dept');
$this->db->from('departement AS d, villes as v');
$this->db->where('v.num_dept = d.num_dept');
$this->db->group_by('d.nom_dept');

有关更多信息,请参阅 12.20.3 MySQL 对 GROUP BY 的处理

原文由 Tojo 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏