在laravel中使用DB:raw处理这个子查询的最佳方式是什么



经过几次尝试,我在使用laravel中的DB::raw格式化这个原始查询时遇到了问题。有人能给我指正确的方向吗?我尽量避免使用DB::table,或者尽可能将其拆分为多个查询。

select id 
from ParticipantDetail 
where testId= (
select testId from PacketDetail where PacketDetail.packetid=ParticipantDetail.packetid and  [order]='1'
) 
and packetid = (
select packetid from ParticipantDetail where id = '1f4716e9-6e8b-41ce-b746-60a013fab38f'
)
and masterid = (
select masterid from ParticipantDetail where id = '1f4716e9-6e8b-41ce-b746-60a013fab38f'
)

我认为没有必要使这些子查询成为

我稍微更改了一下查询。并使用DB::select((来运行它。

DB::select("select partDtl.id from ParticipantDetail partDtl
INNER JOIN PacketDetail packDtl on packDtl.packetid = partDtl.packetid
WHERE partDtl.id = ? and packDtl.order = ?",
['1f4716e9-6e8b-41ce-b746-60a013fab38f', '1']);

我希望它能起作用。

最新更新