【发布时间】:2017-08-16 01:19:20
【问题描述】:
我有这个问题
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
我知道如何使用 eloquent 进行连接,但我不知道如何编写自定义连接。
有没有人发生过类似的事情? 有人需要用 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();
我得到了这个错误:
【问题讨论】:
-
您需要大量代码 IMO。您可能需要对 Laravel 查询的一部分使用原始 SQL。
-
是一种方式,但 DB:raw 不会将数据作为集合检索,而是我需要的
-
不确定你在说什么; Laravel 允许您在需要时在 Laravel 查询中使用原始 SQL。
-
你能不能至少画出表之间的关系..?另外,您是否真的尝试过 DB:raw 和
dd的结果? -
使用 DB::select(你的 sql)
标签: php mysql laravel eloquent