!!! Как найти даты "извне" в запросе? Help!
Добавлено: 2018.10.13, 00:20
Всем привет!Я уже задавал вопрос на toster https://toster.ru/q/570168, но не смог найти решения... Помогите! Есть три таблицы: appointment, profile, event (назначения, профиль, мероприятия) во вложении...
Мероприятие 1 проходит в даты 2018-11-24 по 2018-11-25 (продолжительность 2 дня)
Мероприятие 2 проходит в даты 2018-11-25 по 2018-11-25 (продолжительность 1 день)
Мне нужно проверить на существующие назначения пользователя в даты проведения события в таблице appointment. Если он уже судит - выдаем ошибку "Судья уже имеет назначение в эти даты!"
Я делаю такой запрос:
В итоге, по данному запросу при назначении на Мероприятие 2 (1 день) не находит ни одного назначения в диапазон дат Мероприятия 1 (2 дня). Однако если назначать на Мероприятие 1 с большим диапазонам дат, чем у мероприятия, то тогда находит все назначения.
Как мне сделать запрос, чтобы он учитывал все даты "извне"?
Мероприятие 1 проходит в даты 2018-11-24 по 2018-11-25 (продолжительность 2 дня)
Мероприятие 2 проходит в даты 2018-11-25 по 2018-11-25 (продолжительность 1 день)
Мне нужно проверить на существующие назначения пользователя в даты проведения события в таблице appointment. Если он уже судит - выдаем ошибку "Судья уже имеет назначение в эти даты!"
Я делаю такой запрос:
Код: Выделить всё
$appointmentsInDates = Appointment::find()
->joinWith(['event', 'profile'])
->andWhere([Profile::tableName() . '.user_id' => $model->certification->user_id])
->andWhere(['!=', Event::tableName() . '.id', $model->event_id])
->andWhere(['>=', Event::tableName() . '.date_from', '2018-11-24'])
->andWhere(['<=', Event::tableName() . '.date_to', '2018-11-25'])
->groupBy(Event::tableName() . '.id')
->exists();
Как мне сделать запрос, чтобы он учитывал все даты "извне"?