Это моя таблица MySQL:
ID start end
==== ===== ===
01 01/01/2020 10/01/2020
02 09/01/2020 31/01/2020
03 02/01/2020 04/01/2020
Я пытаюсь получить уникальный список дней, которые совпадают с самим собой, поэтому это ожидаемый результат:
results
=====
02/01/2020
03/01/2020
04/01/2020
09/01/2020
10/01/2020
Я пытался получить это с помощью «между», но он возвращает только диапазон дат. Это мой запрос:
SELECT t1.*
FROM $table AS t1, $table AS t2
WHERE t1.id > t2.id
AND (t1.check_in_date BETWEEN t2.check_in_date AND t2.check_in_date
OR t1.check_out_date BETWEEN t2.check_in_date AND t2.check_out_date
OR t1.check_in_date >= t2.check_in_date AND t1.check_out_date <= t2.check_out_date)
Могу ли я расширить этот запрос, чтобы достичь своей цели, или мне нужно найти совершенно другой способ?
ОБНОВЛЕНИЕ (скопировано из комментария)
Я использую MariaDB v.10.0.44