php+mysql數據庫聯合查詢 left join 右側數據重復問題


情況:多表聯合查詢(三表及以上聯合查詢)

分析:

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();
View Code
->leftJoinSub($withdraw_sum,'withdraw_sum','vt_acceptance.id','=','withdraw_sum.acceptance_id')
View Code

 Enjoy it !


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM