如何在 laravel 中获取所有平均评分的数据
Posted
技术标签:
【中文标题】如何在 laravel 中获取所有平均评分的数据【英文标题】:How Can i fetch all data with average rating in laravel 【发布时间】:2020-12-26 13:00:30 【问题描述】:我想显示所有产品的平均评分。在这种情况下,我有两个表,例如 Product Table 和 Product Rating Table
例如:
我的产品表
ProductID | ProductName
-------------------------
1 | ABC Product
2 | XYZ Product
3 | LMN Product
我的评分表
ID | ProductID | Value
-------------------------
1 | 1 | 4
2 | 1 | 5
3 | 2 | 3
我需要这样的输出,
[
"ProductID": 1,
"ProductName": ABC Product,
"AverageRating": 4.5,
,
"ProductID": 2,
"ProductName": XYZ Product,
"AverageRating": 3.0,
,
"ProductID": 3,
"ProductName": LMN Product,
"AverageRating": 0,
]
如何在 laravel 中获得此输出?提前致谢!
【问题讨论】:
这能回答你的问题吗? How to get average of column values in laravel 你使用的是什么版本的 Laravel? Laravel 框架 7.16.1 【参考方案1】:$data = DB::table('products_table')
->select('products_table.ProductId',
'products_table.ProductName',
\DB::raw('AVG(ratings_table.value) as AverageRating')
->leftJoin('ratings_table', 'ratings_table.ProductId', 'products_table.ProductId')
->groupBy('ratings_table.ProductId')->get();
return $data->toArray();
我尚未运行此查询,但这可能会让您对您的问题有所了解。
【讨论】:
知道了,谢谢!以上是关于如何在 laravel 中获取所有平均评分的数据的主要内容,如果未能解决你的问题,请参考以下文章