У меня есть таблица ниже.
booking_person TABLE
Я пытаюсь проверить, есть ли какое-либо совпадение времени (не даты) человека в каком-либо другом бронировании. Как человек не может быть в 2 местах одновременно. Хорошо, если время начала бронирования совпадает с временем окончания другого бронирования.
Я использую запрос ниже, но он не возвращает мне ничего, кроме скриншота, который я прикрепил, с наложением времени. Время окончания бронирования booking_id 1 находится между временем начала и окончания booking_id 2.
select * from booking_person y
where exists (
select 1 from booking_person y2
where y.booking_id <> y2.booking_id
and y.person_id = y2.person_id
and FROM_UNIXTIME(y.date_time) BETWEEN FROM_UNIXTIME(y2.date_time) and FROM_UNIXTIME(y2.date_time_end)
and FROM_UNIXTIME(y.date_time_end) BETWEEN FROM_UNIXTIME(y2.date_time) and FROM_UNIXTIME(y2.date_time_end)
)
order by person_id