1

別の関連テーブルの合計を取得しながら、テーブルの列を取得しようとしています (MySQL データベースを使用しています)。表はアドバンテージとコンバージョンです。アドバンテージにはconversionID結合する列があります。それらはすべてモデルを介して関連しています。私は最初にEloquentメソッドでこれを達成しようとしましたが、うまくいかなかったので、うまく機能しているこのFluentメソッドを思いつきました:

DB::table('conversions')
    ->join('advantages','advantages.conversionID','=','conversions.id')
    ->where('conversions.used','=',0)
    ->group_by('conversions.id')
    ->get(array(
        'conversions.*',
        DB::raw('SUM(advantages.point) as totaladvantage')
      ))

クエリは、列がどのようになっているのか、何を達成したいのかを説明していると思います。

だから私の質問は:これを達成するためのより効率的な方法はありますか? これを使用DB::rawすると奇妙に思え、sum()メソッドは列の合計のみを返します。これは、私のプロジェクトで流暢なクエリと生のクエリの両方を書いたほとんど唯一の場所なので、何かが足りないのではないかと考えさせられました。

前もって感謝します

4

1 に答える 1