【问题标题】:Convert SQL Query with Subquery to Laravel query将带有子查询的 SQL 查询转换为 Laravel 查询
【发布时间】:2014-07-12 16:17:28
【问题描述】:

是否可以将我的 SQL 查询转换为 Laravel 4 查询

SQL:

SELECT
  Branch_tbl.ID,
  Branch_tbl.BranchName,
  (
    SELECT
      SUM(Expenses.Expense)
    FROM
      Expenses
    WHERE
     Expenses.BranchID = Branch_tbl.ID 
  ) as 'Total Expenses'
FROM
  Branch_tbl

【问题讨论】:

    标签: sql laravel subquery


    【解决方案1】:

    您可以尝试原始表达式(可能不是最佳解决方案)

    DB::table('branch_tbl')
    ->select(
      'branch_tbl.id',
      'branch_tbl.branchname',
      DB::raw("
      ( select sum(expenses.expense) from expenses where
        expenses.branchid = branch_tbl.id 
      )as 'total expenses'"))->get();
    

    如果你有一个复杂的子查询,你可以把它分开:

    $subQuery = DB::table('expenses')
            ->select(DB::raw('sum(expenses.expense)'))
            ->whereRaw('expenses.branchid = branch_tbl.id');
    
    DB::table('branch_tbl')
    ->select('branch_tbl.id','branch_tbl.branchname',
        DB::raw("(" . $subQuery->toSql() . ") as 'total expenses'")
    )
    ->get();
    

    注意不要使用原始表达式创建任何 SQL 注入。

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 2017-04-07
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2018-06-10
    相关资源
    最近更新 更多