У меня есть таблица Weeks, который присоединен к таблице свойств, Weeks таблица вида: -Laravel Eloquent, возвращают строки, в которых оба условия истинны
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, поскольку доступна только одна из недель.
Я пробовал различные способы, но либо ничего не получал, либо всегда возвращал 1, 2 и 4 строки.
Я думаю, что это близко, но он по-прежнему не хватает что-то, как он ищет даты, которые < = И> =
$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 работает.
ВЫБОР PropID ОТ tblweeks ГДЕ WeekDate
В ('2015-07-04', '2015-07-11') и группы Available
= 'да' ПО PropID HAVING COUNT (*) = 2
Можете ли вы поделиться своими образцами данных надлежащего ty table? Удивление, если это может быть полезно! –
Можете ли вы опубликовать свой код модели. – whoacowboy
Также, учитывая, что WeekDate является датой, можете ли вы подтвердить, что это правда? – whoacowboy