Php 如何将此查询构建为laravel Elount

Php 如何将此查询构建为laravel Elount,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有这个疑问 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 inne

我有这个疑问

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
我知道如何使加入雄辩,但习惯加入我不知道如何写它

有没有类似的事情发生在任何人身上? 有没有人需要向拉威尔提出这样的问题

帮帮我! 多谢各位

编辑

我按如下方式运行查询:

$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();
我得到了这个错误:


听起来你不需要加入,只需要加入。
这样,您只需在单独的查询中执行当前的两个联接查询,然后使用union函数将它们应用于另一个查询。

听起来您不需要联接,只需要一个联接。
这样,您只需在单独的查询中执行当前的两个联接查询,然后使用union函数将它们应用于另一个查询。

您需要大量的代码。您可能需要在Laravel查询的一部分中使用原始SQL。这是一种方法,但是DB:raw并没有将de数据作为一个集合来检索,它是我所需要的,我不知道你们在说什么;如果需要,Laravel允许您在Laravel查询中使用原始SQL。您能至少绘制表之间的关系吗。。?另外,您是否实际尝试过DB:raw和
dd
结果?使用DB::select(您的sql)您需要很多代码。您可能需要在Laravel查询中使用raw sql。这是一种方法,但DB:raw不作为集合检索de数据,我不需要确定您在说什么;如果需要,Laravel允许您在Laravel查询中使用原始SQL。您能至少绘制表之间的关系吗。。?另外,您是否实际尝试过DB:raw和
dd
结果?使用DB::select(您的sql)