2017-08-16 44 views
1

我有这个疑问如何建立这个查询到laravel雄辩

select est.*, bf.followup as bf_follow, bf.unidad as bf_unidad, bu.unidad as bu_unidad, bu.asistencia as bu_asistencia, bu.calificacion as bu_calificacion 
from estudiantes as est 
inner join bluecard as bc on bc.estudiante = est.usuario_id 
inner join beneficiarios as bene on bene.usuario_creado = est.usuario_id 
inner join (
    select bluecard, followup, unidad 
    from bluecard_followups 
    order by bf_id desc 
) bf on (bf.bluecard = bc.bc_id) 
left join (
    select bluecard, unidad, asistencia, calificacion 
    from bluecard_unidades 
    order by bu_id desc 
) bu on (bu.bluecard = bc.bc_id) 

where bc.status = 1 
group by est.usuario_id 
limit 500 

我知道如何使雄辩加入但自加入我不知道怎么写。

发生过类似的事情吗? 有没有人需要像laravel这样的查询?

帮帮我! 谢谢

编辑

我会像这样的查询:

$estudiantes = Estudiantes::select(
          DB::raw(" 
       select est.*, bene.contrato as nro_contrato, bf.followup as bf_follow, bf.unidad as bf_unidad, bu.unidad as bu_unidad, bu.asistencia as bu_asistencia, bu.calificacion as bu_calificacion 
       from estudiantes as est 
       inner join bluecard as bc on bc.estudiante = est.usuario_id 
       inner join beneficiarios as bene on bene.usuario_creado = est.usuario_id 
       inner join (
       select bluecard, followup, unidad 
       from bluecard_followups 
       order by bf_id desc 
      ) bf on (bf.bluecard = bc.bc_id) 
       left join (
       select bluecard, unidad, asistencia, calificacion 
       from bluecard_unidades 
       order by bu_id desc 
      ) bu on (bu.bluecard = bc.bc_id) 

       where bc.status = 1 
       group by est.usuario_id 
       limit 500")) 
        ->get(); 

,我得到这个错误:

enter image description here

+0

你在问很多代码IMO。您可能需要为部分Laravel查询使用原始SQL。 –

+0

是一种方式,但DB:raw不会将数据作为集合检索,并且它是我需要的 –

+1

不确定您在说什么;如果需要,Laravel允许您在Laravel查询中使用原始SQL。 –

回答

0

听起来像是你不需要加入但是一个union。 这样,您只需在单独的查询中执行当前的两个连接查询,而不是使用联合功能将它们应用于其他查询。