繁体   English   中英

如何在 laravel 中分块连接查询

[英]how to chunk a join query in laravel

在我的 Laravel 应用程序的某处,以下查询可能会返回一个非常大的结果集:

$data = $query->join('accommodation_rooms', 'accommodations.id', '=', 'accommodation_rooms.accommodation_id')
    ->join('discounts', 'accommodation_rooms.id', '=', 'discounts.accommodation_room_id')
    ->select('accommodation_rooms.id')
    ->orderBy('discounts.amount', 'desc')
    ->select('discounts.amount', 'accommodations.*')
    ->groupBy('discounts.amount', 'accommodation_rooms.id');
return $data;

我想知道如何更快地加载部分数据,但稍后才加载 rest 可能使用一些分页机制或其他东西。

鉴于数据是从 API 发送的,我想知道如何对这些数据进行分块。
谢谢你。

您可以为此目的使用分页方法

$data = $query->join('accommodation_rooms', 'accommodations.id', '=', 'accommodation_rooms.accommodation_id')
->join('discounts', 'accommodation_rooms.id', '=', 'discounts.accommodation_room_id')
->select('accommodation_rooms.id')
->orderBy('discounts.amount', 'desc')
->select('discounts.amount', 'accommodations.*')
->groupBy('discounts.amount', 'accommodation_rooms.id')->paginate(15);

您可以更改要在给定参数中获取的记录数以对 function 进行分页,例如 15。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM