gpt4 book ai didi

mysql - Laravel:具有复杂条件的 whereHas()

转载 作者:行者123 更新时间:2023-11-30 21:47:21 27 4
gpt4 key购买 nike

假设我有两个模型,

BlockSlot 各自的表结构为:-

blocks(id, name);
slots(id, block_id, time, status);

slots.status 的值可能为 0(可用)或 1(已预订)。

问题是,我只想返回那些 status count 1 与 slots 表中的总 slots count 比率小于 0.5 或另一个术语的 block , 我想退还那些可预订的插槽超过 50% 的 block 。

我有一个 laravel Eloquent 逻辑如下:-

$blocks = Block::whereHas('slots', function ($q) {
// What might be the condition here... ?
})
->with('slots');

最佳答案

我不确定我是否理解这个公式,但如果你想在有更多可用插槽的地方获得 block ,你可以这样做:

$blocks = Block::withCount(['slots as booked' => function($q) {
$q->where('status', 1);
}])
->withCount(['slots as available' => function($q) {
$q->where('status', 0);
}])
->get();

$blocks = $blocks->filter(function ($block) {
return $block->booked > $block->available;
});

关于mysql - Laravel:具有复杂条件的 whereHas(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com