如何用日期范围mysql8联接表

时间:2019-08-02 11:02:10

标签: mysql date range mysql-8.0

问题:我有一个表,其中包含某个事件(例如“ Festival1”,“ Concert1”)的开始和结束日期。 TABLE1中的行如下所示:

ID EVENT     START      END         DAY_OF_INSERT DAYS_IN_ADVANCE_INSERT
1  CONCERT1  2019-08-10 2019-08-12  2019-07-01    40

然后我有第二张表,每一天都有一个表,并且有一个值指示在表1中插入时还剩下多少天 所以table2看起来像这样:

ID ID_EVENT          DAY         TIME_ADVANCE
1  1(same id table1) 2019-08-10  40(40 days to that day)
2  1(same id table1) 2019-08-11  41(41 days to that day)
3  1(same id table1) 2019-08-12  42(42 days to that day)

由于mysql 8允许窗口化功能,而许多技巧5.6不起作用,有人可以在这个问题上解决我吗?我敢肯定,要想拥有TABLE1并在运行时虚拟地创建TABLE2,而无需在真正的TABLE2上进行任何连接,这只会使我的DB SIZE膨胀,这是一种更聪明的方法。

从技术上讲,我现在总是在进行这种加入:

select * from TABLE1 join TABLE2 on TABLE1.id = TABLE2.id_event

这非常快,但是我不喜欢一开始就使用table2。

建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

一点想法都没有?我认为这是人们在处理日期范围时应该面对的一个相当普遍的问题