SQL запрос дат между датами в двух столбцах - PullRequest
0 голосов
/ 27 мая 2020

У меня есть две таблицы, по которым я хочу выполнить запрос.

Первая таблица под названием «События» содержит столбец событий и столбец дат.

event       |date       |

"Christmas" |2019-12-25 |

"Blue moon" |2020-05-16 |

"Earth day" |2020-03-26 |

вторая таблица с названием «Периоды» имеет столбец с названиями периодов и два столбца с датами начала и окончания периодов.

period              |start date |end date   |

"Shark week"        |2019-03-20 |2019-03-27 |

"Easter weekend"    |2020-04-12 |2020-04-15 |

"Ramadan"           |2020-04-20 |2020-05-24 |

Я хочу, чтобы запрос возвращал список событий и дат из Таблица событий, в которой событие происходит между датой начала и окончания любого периода.

Запрос дал бы следующий результат в приведенных выше таблицах:

event       |date       |

"Blue moon" |2020-05-16 |

"Earth day" |2020-03-26 |

У меня ограниченные знания SQL. Лучшее, что я могу сделать, - это запросить в таблице событий события, произошедшие за один период. Примерно так:

SELECT event, date FROM 'Events' 
WHERE ("2019-03-20" < date) AND (date < "2019-03-27")

Я рассмотрел связанные вопросы для запросов между двумя датами. Связанные вопросы не охватывают случаи, когда даты берутся из столбцов таблицы.

1 Ответ

0 голосов
/ 27 мая 2020

Это звучит как join:

select e.*, p.*
from events e join
     periods p
     on e.date >= p.start_date and e.date <= p.end_date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...