【发布时间】:2014-06-22 05:51:49
【问题描述】:
我正在构建一个复杂的查询,但我遇到了问题... 实际上,我从 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 | | |
我怎样才能得到这个结果?
谢谢!!!
【问题讨论】:
-
建议始终有一个日期表。
-
是
with recrursive使用保留字作为伪表名吗? -
@xQbert 是 sqlite 中的保留字
-
那么改表名能消除错误吗?我不知道什么不起作用,所以我不确定在哪里看:D 除了将表(伪或其他)命名为保留字似乎很奇怪。
标签: sql sqlite date join union