我需要根據date_begin
和date_end
字段選擇所有預訂預訂。我有一個只顯示所選日期日曆10天的日曆。MySQL - 根據日期獲取預訂
2017-05-15 -> Date chosen by user
2017-05-10 -> Date begin
2017-05-20 -> Date end
而且目前我的查詢如下:
SELECT *
FROM bookings
WHERE ((date_begin >= '2017-05-10' AND date_begin <= '2017-05-20') OR
(date_end >= '2017-05-10' AND date_end <= '2017-05-20'))
現在,什麼情況是,90%,我保留意見就顯示在日曆和作品,但是有一個如果。
如果預訂超過10天以上(這是日曆的限制),它只會在日曆中顯示,如果:
- 的
date_begin
存在於日曆或 - 的
date_end
存在日曆
這意味着在某些日期之間日曆中存在差距。
2017-05-15 -> Date chosen by user
2017-05-10 -> Date begin
2017-05-20 -> Date end
2017-05-11 -> Date begin reservation
2017-05-27 -> Date end reservation
Shows in calendar? Yes
2017-05-16 -> Date chosen by user
2017-05-11 -> Date begin
2017-05-22 -> Date end
2017-05-11 -> Date begin reservation
2017-05-27 -> Date end reservation
Shows in calendar? Yes
2017-05-17 -> Date chosen by user
2017-05-12 -> Date begin
2017-05-23 -> Date end
2017-05-11 -> Date begin reservation
2017-05-27 -> Date end reservation
Shows in calendar? No!
2017-05-18 -> Date chosen by user
2017-05-13 -> Date begin
2017-05-24 -> Date end
2017-05-11 -> Date begin reservation
2017-05-27 -> Date end reservation
Shows in calendar? No!
2017-05-21 -> Date chosen by user
2017-05-16 -> Date begin
2017-05-27 -> Date end
2017-05-11 -> Date begin reservation
2017-05-27 -> Date end reservation
Shows in calendar? Yes
我該如何改進我的查詢?