【问题标题】:SQLite return multiple rows from a date range subquerySQLite 从日期范围子查询返回多行
【发布时间】:2018-12-31 08:57:55
【问题描述】:

我正在尝试从“注册”表中返回满足闭包表中的行指定的所有日期范围的所有行。以下查询返回闭包表的相应第一行的寄存器条目:

select * from Register where NOT(start_time > (select EndDate from Closures) OR start_time  < (select StartDate from Closures)) group by id;

关闭表具有以下开始和结束日期:

"2018-09-21"    "2018-09-27"
"2018-06-12"    "2018-06-12"
"2018-06-10"    "2018-06-12"
"2018-06-15"    "2018-06-15"
"2018-06-19"    "2018-06-24"

但是上面的查询只返回来自 Register 的行,就好像子查询返回 2018-09-21 和 2018-09-27,我如何让它基本上为子查询的所有行运行外部查询?

【问题讨论】:

    标签: sql sqlite date-range


    【解决方案1】:

    可能你想像这样内联register

    SELECT r.*
           FROM register r
                INNER JOIN closures c
                ON c.enddate >= r.start_time
                   and c.startdate <= r.start_time;
    

    【讨论】:

    • 谢谢,这是一个好的开始,但是如果我有一个在同一天开始和结束的关闭日期(关闭一天),则查询不会返回任何注册条目的结果天
    • 由于注册字段是时间戳,我将查询更改为包含日期(r.start_time),然后它按预期工作
    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2017-12-06
    • 2020-06-14
    • 2020-10-05
    • 1970-01-01
    相关资源
    最近更新 更多