【发布时间】:2017-12-20 14:25:55
【问题描述】:
我有以下查询(已修整)来列出供用户预订的房间:
$buildquery=Room::
with(['hotel' => function ($query) {
$query->where('status', 0);
}])
->with('image')->with('amenities');
if ($request->filled('location_id')) {
$buildquery->Where('city', $request->location_id);
}
$buildquery->Where('astatus', 1)->Where('status', 0);
$rooms = $buildquery->simplePaginate(20);
实际查询(未修剪):
select `rooms`.*,
(select count(*) from `amenities` inner join `amenities_room` on `amenities`.`id` = `amenities_room`.`amenities_id` where `rooms`.`id` = `amenities_room`.`room_id` and `amenities_id` in (?)) as `amenities_count`
from
`rooms`
where `city` = ? and `price` between ? and ? and `astatus` = ? and `status` = ? having
`amenities_count` = ?
limit 21 offset 100
它列出了酒店中所有可用的房间。我只需要为最低价格的一家酒店选择一间客房。
【问题讨论】:
标签: php mysql eloquent laravel-5.5