0

テーブルの場所とテーブルの評価があります。すべての場所には、評価テーブルに複数の行があります。すべての場所を取得したいのですが、すべての場所オブジェクトには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 つのオブジェクトに配置されます。

4

0 に答える 0