【问题标题】:How Can i fetch all data with average rating in laravel如何在 laravel 中获取所有平均评分的数据
【发布时间】:2020-12-26 13:00:30
【问题描述】:

我想显示所有产品的平均评分。在这种情况下,我有两个表,例如 Product TableProduct 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 中获得此输出?提前致谢!

【问题讨论】:

标签: php laravel laravel-5 eloquent laravel-4


【解决方案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();

我尚未运行此查询,但这可能会让您对您的问题有所了解。

【讨论】:

  • 知道了,谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多