情況:多表聯合查詢(三表及以上聯合查詢)
分析:
A left join B left join C left join D
假如:
表B、C、D都與表A關聯查詢
A left join B 4條數據
A left join C 2條數據
A left join D 1條數據
那么:
結果會有4條數據:B表查詢數據正確;C表查詢數據重復2次;D表數據重復4次
解決方案:
使用子查詢(下面是laravel框架寫法)

$withdraw_sum=Acceptance::query()->from('vt_withdraw_master_order')->where('admin_approval_status',config('constant.WITHDRAW_APPROVAL_STATUS.approved'))->groupBy('acceptance_id')->select('acceptance_id',DB::raw('sum(order_amount) as given_money'))->getQuery();

->leftJoinSub($withdraw_sum,'withdraw_sum','vt_acceptance.id','=','withdraw_sum.acceptance_id')
Enjoy it !