Codeigniter活动记录查询计数

时间:2014-02-15 21:20:58

标签: sql codeigniter activerecord

在我的项目中我有4张桌子。一个名为CallsProjectsProductsUsers

来电有2个FK(project_iduser_id),项目有一个FK(product_id)。

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

我正在尝试查询这样的内容:

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

1 个答案:

答案 0 :(得分: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'];
    } 

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