2016-10-20 29 views
0
select ass.pessoa_id, r1.id from assinatura as ass 
inner join relatorio_grupo rp on rp.id = ass.relatorio_grupo_id 
inner join relatorio r1 on r1.grupo_id = rp.id 
left join relatorio_excecao r on r.pessoa_id = ass.pessoa_id and r1.id = r.relatorio_id 
where r.id is null and ass.pessoa_id = 2 

我试试这个,但数据不正确。如何将此查询转换为雄辩?

Assinatura::join('relatorio_grupo','relatorio_grupo.id','=','assinatura.relatorio_grupo_id') 
    ->join('relatorio','relatorio.grupo_id','=','relatorio_grupo.id') 
    ->join('relatorio_excecao','relatorio_excecao.pessoa_id','=','assinatura.pessoa_id and relatorio.id = relatorio_excecao.id','left',true) 
    ->whereNull('relatorio_excecao.id') 
    ->where('assinatura.pessoa_id', $id) 
    ->toSql(); 
+0

格式的代码在你的问题正确,请。 – tam5

回答

0

看起来你需要在第三语句中使用leftJoin而不是join

leftJoin('relatorio_excecao','relatorio_excecao.pessoa_id','=','assinatura.pessoa_id and relatorio.id = relatorio_excecao.id','left',true) 
+0

没有工作... –