2014-05-23 69 views
0

是否有可能我的SQL查詢轉換爲Laravel 4查詢與子查詢轉換SQL查詢到Laravel查詢

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 

回答

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注入。

+0

感謝您的回答。 –

+0

沒問題,歡迎你 – Razor