SQl加入日期范围

时间:2016-12-12 18:12:50

标签: mysql date join date-range

我有一张桌子

ID, Start Date, End Date

我有第二张表,其中有一列,日期从2000年到2050年。这是加入开始和结束日期的关键 DATE_ID

我想从这张桌子开始

ID, Start Date, End Date
123, 1/1/2017,  1/5/2017

然后将其加入日期表(第二个表)以输出这样的表

ID, Start Date, End Date, Day Date
123, 1/1/2017,  1/5/2017, 1/1/2017
123, 1/1/2017,  1/5/2017, 1/2/2017
123, 1/1/2017,  1/5/2017, 1/3/2017
123, 1/1/2017,  1/5/2017, 1/4/2017
123, 1/1/2017,  1/5/2017, 1/5/2017

我想加入日期范围,但这不起作用。任何帮助/建议将不胜感激!我正在使用MYSQL。

SELECT 
    name,
    date(start_date),
    date(end_date),
    d.id as Day_Date
FROM
    f_table1 a
Left Join
    d_table2 d on d.id = d.id between date(a.start_date) and date(a.end_date)

上面的代码当然没有运行,但到目前为止这是我最好的准备。

2 个答案:

答案 0 :(得分:1)

SELECT 
    name,
    date(start_date),
    date(end_date),
    d.id as Day_Date
FROM       f_table1 a
Left Join  d_table2 d 
    on d.id = d.id 
   and d.`Day Date` between date(a.start_date) and date(a.end_date)

答案 1 :(得分:0)

尝试以下查询:

选择     名称,     日期(起始),     日期(END_DATE),     d.id为Day_Date 从     f_table1 a 正确的加入     d_table2 d在日期(a.start_date)和日期(a.end_date)之间的d.id