Мне нужно получить данные из таблицы, где дата находится в одном из нескольких диапазонов дат. Эти диапазоны дат находятся в другой таблице, и количество диапазонов дат варьируется.
Таблица диапазонов дат выглядит следующим образом:
+----------+------------+------------+
| variable | start_date | end_date |
+----------+------------+------------+
| A | 2017-01-01 | 2017-02-05 |
| A | 2018-07-04 | 2017-09-09 |
| A | 2019-08-08 | |
| B | 2011-10-10 | 2012-02-05 |
+----------+------------+------------+
, а таблица, которую я хочу отфильтровать, выглядит следующим образом:
+----------+------------+--------------+
| variable | date | other_values |
+----------+------------+--------------+
| A | 2017-01-04 | 123 |
| A | 2016-07-04 | 123 |
| B | 2020-01-01 | |
| C | 2018-02-07 | 123 |
+----------+------------+--------------+
Мне нужен запрос, который получает все строки из второй таблицы, где дата находится в одном из диапазонов дат первой таблицы. Если end_date имеет значение Null, date_range переходит от start_date к бесконечности.
Для каждой переменной у меня может быть различное количество строк в таблице диапазона дат.
Для этого примера мой вывод должно быть:
+----------+------------+--------------+
| variable | date | other_values |
+----------+------------+--------------+
| A | 2017-01-04 | 123 |
| B | 2020-01-01 | |
+----------+------------+--------------+
Спасибо за помощь.