我正在尝试从我的“注册”中返回所有行。满足闭包表中行所指定的所有日期范围的表。以下查询返回闭包表的相应第一行的寄存器条目:
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一样,如何让它基本上为子查询的所有行运行外部查询?
答案 0 :(得分:1)
您可能想要内联register
吗?
SELECT r.*
FROM register r
INNER JOIN closures c
ON c.enddate >= r.start_time
and c.startdate <= r.start_time;