dskzap8756 2017-01-30 20: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 20: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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了