codeigniter:如何在连接查询中包含sum()和count()?

kiz8lqtg  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(182)

我的模型里有这个方法

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;
        }
    }

它只从一行返回值,而实际上它应该从多行返回值。

hlswsv35

hlswsv351#

sum()和count()是聚合函数,除非将其与group\ U by语句组合,否则只返回1行。

SELECT count(*) FROM table_a

将返回表a中的总行数。

SELECT table_a.email, count(*) FROM table_a GROUP BY table_a.email

将返回每个电子邮件地址的总行数。
在CodeIgniter3中,我们使用 $this->db->group_by("table_a.email");

相关问题