如何在db query builder或eloquent中添加更多列? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试使用jobseeker_id进行分组,现在我想在查询中选择更多列,这是我的查询...

$jobseekers =DB::table('calllogs')
    ->select(DB::raw('count(*) as user_count,jobseeker_id'))
    ->where('jobseeker_id', '<>', 1)
    ->whereNotNull('type_of_call')
    ->groupBy('jobseeker_id')  
    ->get();

在calllogs表中有很多列,如id,jobseeker_id,type_of_call,status,call_reason等...当前上面的查询只给我user_count和jobseeker_id。我想添加mroe列,如user_count,jobseeker_id,type_of_call,status,call_reason ,等等...

我试着添加就好了

$jobseekers =DB::table('calllogs')
    ->select(DB::raw('count(*) as user_count,jobseeker_id,type_of_call,status,call_reason'))
    ->where('jobseeker_id', '<>', 1)
    ->whereNotNull('type_of_call')
    ->groupBy('jobseeker_id')  
    ->get();
dd($jobseekers);

它的结果相同。 enter image description here

Anyhelps非常感谢。

mysql sql laravel
1个回答
1
投票

所有非聚合列必须出现在group by子句中 -

select(DB::raw('count(*) as user_count,jobseeker_id,type_of_call,status,call_reason'))
             ->where('jobseeker_id', '<>', 1)
             ->whereNotNull('type_of_call')
             ->groupBy('jobseeker_id','type_of_call','status','call_reason')
© www.soinside.com 2019 - 2024. All rights reserved.