Laravel : Select 和 GroupBy SQL 查询错误。多个 Selects 与 groupBy?可能吗?
Laravel : Select and GroupBy SQL Query Error. Multiple Selects with groupBy? Is it Possible?
我有 2 tables 评级和属性,我过了一个月并获得了两个用户的所有记录并计算了这个,我已经计算了这个记录,并按 user_id,但是在我的属性table中有一个用户名,加入这个table得到属性名,我的查询是
$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 那样
但我想获取特定用户的名称和分数,但这里有多个 select 在此查询中不起作用如何使用多个 select 获取属性 table 记录?如果我正在使用这个查询。提前感谢开发者
->select(DB::raw("SUM(ratings.attribute_score) as score , ratings.user_id , attributes.attributes_name"))
使用这个 select 在这里不起作用它总是 return Jason 喜欢在 Sceenshot 中显示的分数。我如何使用 groupBy 来处理 select 的倍数?
使用它来获取带有分数计数的用户名。试试这个
$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'));
我有 2 tables 评级和属性,我过了一个月并获得了两个用户的所有记录并计算了这个,我已经计算了这个记录,并按 user_id,但是在我的属性table中有一个用户名,加入这个table得到属性名,我的查询是
$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 那样
但我想获取特定用户的名称和分数,但这里有多个 select 在此查询中不起作用如何使用多个 select 获取属性 table 记录?如果我正在使用这个查询。提前感谢开发者
->select(DB::raw("SUM(ratings.attribute_score) as score , ratings.user_id , attributes.attributes_name"))
使用这个 select 在这里不起作用它总是 return Jason 喜欢在 Sceenshot 中显示的分数。我如何使用 groupBy 来处理 select 的倍数?
使用它来获取带有分数计数的用户名。试试这个
$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'));