dskzap8756 2017-01-30 12:06
浏览 42
已采纳

如何在雄辩的laravel中编写此查询?

I have been trying to figure out how to write this using Eloquent? This is as far as I got, any suggestions?

 $budgets = Budget::join('transactions','budgets.id','=','transactions.category')
                  ->where('transactions.user_id','=', $authId)
                  ->groupby('transactions.category')
                  ->sum('budgets.amount','-','transactions.amount');

Query that works below

  SELECT SUM(budgets.amount) - SUM(transactions.amount) as amount,
         budgets.category
    FROM budgets 
    JOIN transactions
      ON budgets.id = transactions.category
GROUP BY category
  • 写回答

1条回答 默认 最新

  • dssu33392 2017-01-30 12:13
    关注

    You were close, but when you're getting multiple columns and math, or semi-complicated math (i.e. not a simple sum) you want to pass the math along as a separate column in a raw statement.

    Budgets::join('transactions', 'budgets.id', '=', 'transactions.category')
        ->select([
            DB::raw('SUM(budgets.amount) - SUM(transactions.amount) as amount'), 
            'budgets.category'
        ])
        ->where('transactions.user_id','=', $authId)
        ->groupBy('budgets.category')
        ->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部