php - Codeigniter:如何在 JOIN 查询中包含 SUM() 和 COUNT()?

标签 php mysql codeigniter

我的模型中有这个方法

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

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

最佳答案

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");

关于php - Codeigniter:如何在 JOIN 查询中包含 SUM() 和 COUNT()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734356/

相关文章:

php - 在我的网站上添加评论系统

php - 在 PHP/MySQL 中计算排名

php - 如何在 Perl 中进行全局正则表达式匹配?

php - 表jquery中元素的总和

php - 如何将 XLSX 文件导入/上传到数据库

php - 通过过滤器从多个数据库中选择

php - 如何以行列组合方式显示数据?

sql - 在mysql中, "explain ..."总是安全的吗?

mysql - Sql 搜索中的 if where 和 or 子句

postgresql - ErrorException pg_query() : Query failed: ERROR: relation "5432posts" does not exist LINE 2: FROM "5432posts"