我需要安装一个具有多个条件的左连接,但我没有找到正确的设置
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 :(得分: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();