テーブルの場所とテーブルの評価があります。すべての場所には、評価テーブルに複数の行があります。すべての場所を取得したいのですが、すべての場所オブジェクトにはuser_ratingというプロパティが 1 つ必要です。その値は、この場所のrating.rate_noの平均です。この場所の評価がない場合 (評価テーブルに行がない場合)、user_rating は 0 にする必要があります。私のコードは次のとおりです。
$data = DB::table('places')
->join('rating', 'places.id', '=', 'rating.place_id', 'left outer')
->select(
'places.*',
'rating.rate_no',
DB::raw('avg(rating.rate_no) as user_rating')
)
->groupBy('rating.rate_no')
->get();
このコード グループはすべて、私が望まない avarage(rating) を持つ 1 つのオブジェクトに配置されます。