Есть таблица concerts
, которая содержит поля start_date
в формате: 2019-06-08 10:00:00
и поле duration
- продолжительность в минутах. Мне нужно найти концерты, которые пересекаются с особой датой. Я использую:
SELECT
id, duration, start_date,
DATE_ADD(date, INTERVAL + duration MINUTE) as end_date
FROM
concerts
WHERE
start_date <= '2019-06-08 10:00:00'
and end_date >= '2019-06-08 10:00:00'
Я могу рассчитать end_date
, но тогда я не могу использовать его внутри where
блока, только внутри having
. Как я могу использовать выражение OR
с where
и having
? Я обнаружил, что могу использовать все условия внутри блока having
, но это плохо сказывается на производительности. Любые предложения?
PS Еще один, если я могу использовать where
ИЛИ having
внутри одного запроса, или как я могу заменить его