2017-05-11 8 views
0

に参加し、私は左をマウントする必要がある複数の条件で参加するが、私は正しい設定を見つけていない雄弁左が複数の条件

LEFT JOIN palpite ON partida.partida_id = palpite.partida_fk AND palpite.usuario_fk = 20 

雄弁コード

$results = DB::table('partida') 
     ->join('time as mandante', 'mandante.time_id', '=', 'partida.mandante_fk') 
     ->join('time as visitante', 'visitante.time_id', '=', 'partida.visitante_fk') 
     ->leftJoin('palpite', function ($join) { 
      $join->on('partida.partida_id', '=', 'palpite.partida_fk') 
       ->on('partida.usuario_fk', '=', '20'); 
     }) 
     ->select([ 
      'partida.partida_id', 
      'partida.rodada', 
      'partida_data', 
      'partida.local', 
      'partida.mandante_fk', 
      'partida.visitante_fk', 
      'mandante.abreviacao AS mandante_abreviacao', 
      'mandante.nome AS mandante_nome', 
      'mandante.escudo60x60 AS mandante_escudo', 
      'visitante.abreviacao AS visitante_abreviacao', 
      'visitante.nome AS visitante_nome', 
      'visitante.escudo60x60 AS visitante_escudo', 
      'palpite.placar_mandante', 
      'palpite.placar_visitante' 
     ]) 
     ->where('mandante.aposta', 1) 
     ->orWhere('visitante.aposta', 1) 
     ->orderBy('partida.partida_data', 'ASC') 
     ->get(); 

答えて

0

これを試してみてください:

$results = DB::table('partida') 
      ->join('time as mandante', 'mandante.time_id', '=', 'partida.mandante_fk') 
      ->join('time as visitante', 'visitante.time_id', '=', 'partida.visitante_fk') 
      ->leftJoin('palpite', function ($join) { 
       $join->on('partida.partida_id', '=', 'palpite.partida_fk'); 
       $join->on('partida.usuario_fk', '=', '20'); 
      }) 
      ->select([ 
       'partida.partida_id', 
       'partida.rodada', 
       'partida_data', 
       'partida.local', 
       'partida.mandante_fk', 
       'partida.visitante_fk', 
       'mandante.abreviacao AS mandante_abreviacao', 
       'mandante.nome AS mandante_nome', 
       'mandante.escudo60x60 AS mandante_escudo', 
       'visitante.abreviacao AS visitante_abreviacao', 
       'visitante.nome AS visitante_nome', 
       'visitante.escudo60x60 AS visitante_escudo', 
       'palpite.placar_mandante', 
       'palpite.placar_visitante' 
      ]) 
      ->where('mandante.aposta', 1) 
      ->orWhere('visitante.aposta', 1) 
      ->orderBy('partida.partida_data', 'ASC') 
      ->get();