在Sqlite中加入具有递归函数的表的问题

时间:2014-05-05 20:00:21

标签: sql sqlite date join union

我正在构建复杂的查询,但我遇到了问题...... 实际上,我从sqlite中的递归函数中检索日期范围:

WITH RECURSIVE dates(d)
AS (VALUES('2014-05-01')
    UNION ALL
    SELECT date(d, '+1 day')
    FROM dates
    WHERE d < '2014-05-5')
SELECT d AS date FROM dates

结果如下:

2014-05-01
2014-05-02
2014-05-03
2014-05-04
2014-05-05

我会在其他查询上加入此查询,关于此:

select date_column, column1, column2 from table

结果如下:

2014-05-03  column_value1  column_value2

最后,我想在输出中看到类似的结果(加入第一个查询和第二个查询的date_column):

2014-05-01 |               |               |
2014-05-02 |               |               |
2014-05-03 | column_value1 | column_value2 |
2014-05-04 |               |               |
2014-05-05 |               |               |

如何获得此结果?

感谢!!!

1 个答案:

答案 0 :(得分:1)

为什么不做这样的事情?

WITH RECURSIVE dates(d)
AS (VALUES('2014-05-01')
    UNION ALL
    SELECT date(d, '+1 day')
    FROM dates
    WHERE d < '2014-05-5')
SELECT 
    dates.d AS date 
    ,table.column1
    ,table.column2
FROM dates
    left join table
        ON strftime("%Y-%m-%d", table.date_column) = dates.date

也许您需要转换日期......