我需要进行两次连接,但是有很多条件,我有这个
$matchThese = [ 'suspended' => 0, 'status' => 1, 'approved' => 1 ];
$matchOther = [ 'status' => 1, 'approved' => 0 ];
$deals = ListsDeals::where( $matchThese )->where('stock', '>', 0)->orwhere( $matchOther )->whereDate('end_date', '>', date('Y-m-d'))->limit( 4 )->offset( 0 )->orderBy( 'start_date' )->get();
$deals_lists = DB::table('deals')
->join( 'list_has_deals', 'deals.id', '=', 'list_has_deals.deal_id' )
->join( 'lists', 'list_has_deals.list_id', '=', 'lists.id' )
->paginate( 10 );
我需要一个带有两个vars的唯一查询,在第一个var中选择所有与'WHERES'的交易,然后再进行连接,问候。
答案 0 :(得分:2)
我认为这可以解决问题:
$query = ListsDeals::where( $matchThese )->where('stock', '>', 0)->orwhere( $matchOther )->whereDate('end_date', '>', date('Y-m-d'))->limit( 4 )->offset( 0 )->orderBy( 'start_date' );
$results = $query->join( 'list_has_deals', 'deals.id', '=', 'list_has_deals.deal_id' )
->join( 'lists', 'list_has_deals.list_id', '=', 'lists.id' )
->paginate( 10 );