【发布时间】:2022-01-14 14:39:12
【问题描述】:
是否可以使用 sqlite 创建这样的查询,该查询循环遍历一个表,一次选择一行,我可以将其用作另一个(复杂)查询及其子查询的参数?这是我的意思的简短演示。
有一个带有条件的表格:
create temp table filter as
select 'foo' name, '+1 day' offset union
select 'bar' name, '+3 day' offset union
select 'baz' name, '+6 day' offset;
这是包含数据的表格:
create temp table data as
select 'foo' name, '2021-12-05' day union
select 'bar' name, '2021-12-06' day union
select 'foo' name, '2021-12-07' day union
select 'baz' name, '2021-12-08' day union
select 'baz' name, '2021-12-09' day union
select 'bar' name, '2021-12-10' day;
现在,我想遍历过滤器行并使用每一行从第二个表中查询数据,然后查询union 所有结果。显然下面的伪代码不起作用:
foreach filter
previous result
union all
select *
from data
where date(day) = date('2021-12-07', filter.offset)
我在考虑递归 CTE,但是当涉及到另一个表时,我不确定如何将它组合在一起。
【问题讨论】:
标签: sqlite date join foreach date-arithmetic