【问题标题】:Codeigniter active record query countCodeigniter 活动记录查询计数
【发布时间】:2014-02-15 21:20:58
【问题描述】:

在我的项目中,我有 4 张桌子。一个叫CallsProjectsProductsUsers

Calls 有 2 个 FK(project_iduser_id),Projects 有 1 个 FK (product_id)。

我正在尝试查询表Calls,我想知道每个运营商收到的每种产品的呼叫量。

我正在尝试这样查询:

[{"name":"User1","Project1":"120","Project2":"10,"Project3":"140...}
{"name":"User2","Project1":"80","Project2":"60,"Project3":"14...}]

【问题讨论】:

    标签: sql codeigniter activerecord


    【解决方案1】:

    我猜你是指运营商,你是指用户

    $this->db->select('count(P.product_id) as total_product ,CL.project_id, CL.user_id, P.project_name')
                ->from('Calls CL')
                ->join('Projects P', 'P.project_id=CL.project_id')
                ->group_by('CL.project_id, CL.user_id')
                ->get();
    

    现在你可以编写一个 php 脚本来循环遍历你的结果来生成 json

        $index = 0;
        $user_data = array();
        $user_key = array();
        foreach ($result as $row) {
            if(!isset($user_key[$row['user_id']])){
                $user_key[$row['user_id']] = $index;
                $index++;
            }
            $user_data[$user_key[$row['user_id']]]['user_name'] = $row['user_name'];
            $user_data[$user_key[$row['user_id']]][$row['project_name']] = $row['total_product'];
        } 
    

    我没有测试代码,但它应该可以工作

    【讨论】:

    • 你刚刚让我免于癫痫发作。 :) 我会调查,但似乎它会完成这项工作! ;)
    猜你喜欢
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多