如果一个表中的日期列不存在于连接表中的日期范围内,则使用SQL Query进行过滤?

问题描述 投票:0回答:1

我有两个表如下所示:

表格1:

ID  |  Timestamp
231   3/27/19 0:46
345   3/22/19 22:46

表2:

ID  |  Start Time   |  End Time
231   3/27/19 0:00    3/27/19 0:58
345   3/22/19 22:50   3/22/19 23:50

有一种很好的方法,我只希望表1中的所有行在表2中的任何行的任何开始和结束时间范围内都不存在?

那么表1中的任何行,其中时间戳不在时间范围内或之间,表2中的相同ID开始和结束时间?

谢谢你的时间!

sql datetime data-analysis date-range presto
1个回答
1
投票

像这样的东西?

SELECT * 
FROM TABLE1 
WHERE NOT EXISTS (SELECT NULL FROM TABLE2 
                  WHERE TABLE1.ID = TABLE2.ID 
                    AND TABLE1.TIMESTAMP >= TABLE2.START_DATE 
                    AND TABLE1.TIMESTAMP <= TABLE2.END_DATE)

我将您的列命名为START_DATE和END_DATE。如何在每个DB之间处理空间差异。

© www.soinside.com 2019 - 2024. All rights reserved.