如何使用另一个表中的日期列过滤一个表的开始和结束日期
Posted
技术标签:
【中文标题】如何使用另一个表中的日期列过滤一个表的开始和结束日期【英文标题】:How can i filter my start and end dates of one table using Date column from another table 【发布时间】:2019-04-04 01:38:08 【问题描述】:我有两张表,其中包含以下详细信息。
带有 startdate 和 enddate 列的 Table1。
带有限定日期的表 2。
我想根据table2中的qualifyingdate得到table1的最终结果。
示例:日期为 yyyy-mm-dd 格式
表1:
startdate enddate
row1 : 2018-01-01 2018-03-31
row2 : 2018-02-01 2018-03-31
row3 : 2018-04-20 2018-06-30
row4 : 2017-07-01 2018-12-31
row5 : 2019-08-01 2020-11-30
表2:
QualifyingDate
row1 : 2018-03-01
row2 : 2018-01-31
row3 : 2018-04-20
row4 : 2018-07-01
row5 : 2018-08-01
table1 的最终输出:
row1 : 2018-01-01 2018-03-31 (From table2, row1&row2 falls in between)
row2 : 2018-02-01 2018-03-31 (From table2, row1 falls in between)
row3 : 2018-04-20 2018-06-30 (From table2, row3 falls in between)
row4 : 2017-07-01 2018-12-31 (From table2, row1-row5 falls in between)
请帮帮我。
【问题讨论】:
【参考方案1】:你似乎想要:
select t1.*
from table1 t1
where exists (select 1
from table2 t2
where t2.QualifyingDate between t1.startdate and t1.enddate
);
【讨论】:
以上是关于如何使用另一个表中的日期列过滤一个表的开始和结束日期的主要内容,如果未能解决你的问题,请参考以下文章
我想知道使用 INNER JOIN 和相等运算符更快,或者当我尝试通过另一个表的列过滤表中的数据时使用 IN