2017-05-31 119 views
0

获取的开始和结束日期,我在我的数据库中的两个表:MySQL数据范围从另一个表

日期

id | startdate | peakdate 
1 | 2017-07-03 | 2017-05-29 

大环

id | date   | 
1 | 2017-07-03 | 
2 | 2017-07-10 | 
3 | 2017-07-17 | 

我现在用的是接下来为两个日期之间的所有日期生成行:

select a.date 
from (
select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) Week as date 
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a 
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b 
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c 
) a 
where a.date between '2017-07-03' and '2018-01-24' 

如果我希望'2017-01-20'和'2018-01-24'被日期表中的startdate和peakdate读取的值所取代,我该怎么办?我还需要显示在Macrocycle表中生成的日期以及它旁边的id,而不是它所做的临时表。请有任何想法吗?

回答

0

看看下面的sql,也许会有所帮助。

select a.date 
from (
select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) Week as date 
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a 
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b 
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c 
) a,Dates b 
where a.date between b.startdate and b.peakdate 
+0

所有我得到的是 – Seef

+0

你想说的话在当前日期后的第一个星期一的日期?有什么问题吗? –

+0

我希望它从日期表中获取startdate和peakdate值,然后为这两个日期之间每周的星期一的日期创建一行。此列必须是Macrocycle表的一部分,并且也必须显示其他字段。 – Seef

相关问题