gpt4 book ai didi

php - Laravel Eloquent,返回两个条件都为 True 的行

转载 作者:行者123 更新时间:2023-11-29 02:55:24 25 4
gpt4 key购买 nike

我有一个与属性表相连的周表,周表如下所示:-

PropID, WeekDate,    Available

1 , 2015-07-04, Yes

1 , 2015-07-11, Yes

1 , 2015-07-18, No

2 , 2015-07-04, Yes

2 , 2015-07-11, No

2 , 2015-07-18, No

我想选择第 4 周和第 11 周都可用的属性。在上面的示例中,我想返回 PropID 为 1 的两行,因为这两行都可用,而没有来自 PropID 2 的行,因为只有一周可用。

我尝试了各种方法,但要么一无所获,要么总是返回第一行、第二行和第四行。

我认为这很接近,但它仍然缺少一些东西,因为它正在寻找 <= AND >=

的日期
 $query = Property::whereHas('Week', function($q) use ($arrive)
{
$q->where(function($sub)
{
$sub->where('WeekDate', '>=', '2015-07-04');
$sub->where('WeekDate', '<=', '2015-07-11');

});
$q->where('Available', '=', 'Yes');
})
->get();

不确定这是否有帮助,但属性表很简单

PropID, PropName

1 , Property 1

2 , Property 2

刚刚发现这个 SQL 可以工作。

SELECT PropID FROM tblweeks WHERE WeekDate IN ('2015-07-04', '2015-07-11') AND Available = 'yes' 按 PropID 分组有计数(*)= 2

最佳答案

这将使您的结果仅作为属性 1:

$weeks = Property::whereHas('Week', function ($q) {
$q->where(function ($sub) {
$sub->whereIn('WeekDate', array('2015-07-04', '2015-07-11'));
$sub->where('Available', '=', 'y');
});
$q->groupBy('property_id');
$q->having('count(*)', '=', '2');
})->get();

关于php - Laravel Eloquent,返回两个条件都为 True 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183102/

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