我的模型中有此方法
function get_users_details(){
$this->db->select("a.*,sum('b.downloads') as downloads,COUNT('b.user_email') as uploads");
$this->db->from('user a');
$this->db->join('files b', 'a.email = b.user_email','inner');
$query = $this->db->get();
if($query->num_rows() > 0)
{
foreach ($query->result_array() as $row){
$data[] = $row;
}
$query->free_result();
return $data;
}
else{
return false;
}
}
它仅返回单行中的值,而实际上应该返回多行中的值。
答案 0 :(得分:2)
sum()和count()是聚合函数,除非将其与group_by语句结合使用,否则只会返回1行。
SELECT count(*) FROM table_a
将返回table_a中的总行数。
SELECT table_a.email, count(*) FROM table_a GROUP BY table_a.email
将返回每个电子邮件地址的总行数。
在codeigniter 3中,我们使用
$this->db->group_by("table_a.email");