Laravel:选择和GroupBy SQL查询错误。多个选择groupBy?可能吗?

时间:2017-12-02 08:02:20

标签: php sql laravel sqlite laravel-5.5

我有2个表评级和属性,我通过月份并获得两个用户的所有记录并计算这个,我已经计算了这个记录,并按user_id分组,但在我的属性表中我有一个用户名称,并加入此表以获取属性名称,我的查询是

$months = \Request::get('month');

$records = DB::table("ratings")

    ->select(DB::raw("SUM(ratings.attribute_score) as score"))
    ->whereRaw('MONTH(ratings.created_at) = '.$months)
    ->join('users','ratings.user_id','=','users.id')
    ->groupBy('ratings.user_id')
    ->get();

dd($records);

让json这样  result of this query

但是我想获得具有分数的特定用户的名称,但是这里多个选择不在此查询中如何使用多个select来获取属性表记录?如果我使用此查询。预先感谢开发人员

->select(DB::raw("SUM(ratings.attribute_score) as score , ratings.user_id , attributes.attributes_name"))

使用此选项不在这里工作它总是返回得分Jason喜欢在Sceenshot中显示。如何使用groupBy ??

选择倍数

1 个答案:

答案 0 :(得分:1)

使用它来获得分数计算用户名。试试这个

$months = \Request::get('month');

$records = DB::table("ratings")
    ->select(DB::raw('SUM(ratings.attribute_score) as score, users.name as 
      user_name'))
    ->whereRaw('MONTH(ratings.created_at) = '.$months)
    ->join('users','ratings.user_id','=','users.id')
    ->groupBy('users.name')
    ->get();   
return view('attribute.show' , compact('records'));