【laravel5】实现超级牛皮的 leftjoin ON (a or b) and c 联表查询


1、 本sql 以 查询构造器实现 上述 leftjoin ( a or b )  and c  复杂联表查询

2、使用 DB::raw 生成 一个 字表进行联表,sql如下:

 

//         DB::connection()->enableQueryLog();

              $objM = $objM->addSelect('cc.node_id', 'cc.sale_cnt')
                  ->leftJoin(DB::raw("(select node_id, product_id, sum(sale_cnt) as sale_cnt FROM stat_product_sale_day 
WHERE 1=1 AND node_id=".$nodeId." GROUP BY node_id, product_id) as cc"), function($join){ $join->on( function($left) { return $left->on('s.store_id','=','cc.node_id')->orWhere('product_sale_info.group_id', "0"); }) ->on('product_sale_info.product_id','=','cc.product_id'); //                     $join->on('s.store_id','=','cc.node_id')->orWhere('product_sale_info.group_id', "0")
//                       ->on('product_sale_info.product_id','=','cc.product_id');
                  })
                  -> orderBy('cc.sale_cnt', 'DESC');
        }
        
//         $objM->get(); dd(DB::getQueryLog());die;
        return $objM = $objM->paginate(15);

 

其他的就不说了,拿去用

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM