【问题标题】:Laravel 5.1: Query Builder Select Multi table and SUM resultLaravel 5.1:查询生成器选择多表和 SUM 结果
【发布时间】:2016-06-22 04:50:14
【问题描述】:

我的代码

DB::table('users_tb')->leftjoin('device_tb', 'device_tb.user_id', '=', 'users_tb.user_id')
->leftjoin('part_tb', 'device_tb.device_id', '=', 'part_tb.device_id')
->select('users_tb.user_name', DB::raw("(SELECT COUNT(part_tb.id) FROM part_tb) AS counter"))
->where('users_tb.level', '>', 7)
->havingRaw("(SELECT COUNT(part_tb.id) FROM part_tb) > 0")
->groupBy('device_tb.device_id')
->orderBy('users_tb.user_name')
->get()->toArray();

我的结果:

Name1 - 3
Name1 - 4
Name1 - 3
Name2 - 11
Name2 - 2

我怎样才能 SUM 计数器? (使用查询生成器/SQL 查询)示例:

Name1 - 10 (3+4+3)
Name2 - 13 (11 + 2)

请有人帮帮我!!

【问题讨论】:

    标签: php laravel laravel-5.1


    【解决方案1】:

    我创建了一个自定义数组,我认为您的查询数组是相同的。你可以用流畅的方式编写代码。

    $arrs['Name1'] = array(
        3,4,3
     );
     $arrs['Name2'] = array(
        11,2
     ); 
    
    $count_status = array();
     foreach($arrs as $index=>$arr){
        $sum = 0;
        foreach($arr as $key=>$arrss){      
            isset($arrs[$index]) ? $count_status[$index] = $sum+=$arrss : $sum = 0;
        }
        $allVal[$index] = implode('+',$arr);
     }
     foreach($count_status as $stKey=>$eachCount){
         echo $stKey.' - '.$eachCount.' ('.$allVal[$stKey].') <br>';
     }
    

    为我输出

    //Name1 - 10 (3+4+3) 
    //Name2 - 13 (11+2)
    

    【讨论】:

    • 非常感谢,这是个好主意。但是,您可以使用查询生成器对结果求和
    猜你喜欢
    • 2018-12-26
    • 2019-06-22
    • 2017-05-22
    • 2015-03-25
    • 2013-01-06
    • 2016-09-06
    • 2021-04-27
    • 1970-01-01
    • 2019-06-25
    相关资源
    最近更新 更多