我想知道如何运行一个返回事件的 SQL 查询,该事件的时间在有效段中。
例如,我有两张桌子,
事件
event_id event_time
0        134
1        434
2        4300
分割
segment_type segment_start_time segment_end_time
data1         100                130
data1         200                500
data1         700                8000
veto1         400                440
data2         150                450
data2         4000               5000
veto2         175                200
我想要一个可以返回的查询
event_id event_time
1        434
2        4300
我在想类似的东西
SELECT * 
FROM event
WHERE 
    event.event_time > (SELECT segment.segment_start_time FROM segment)
    AND 
    event.event_time < (SELECT segment.segment_end_time FROM segment)
但这只是什么都不返回。我究竟做错了什么?
我想做的下一步是找到事件时间;
在“数据”段开始时间和结束时间之间,而不是在“否决”段开始时间和结束时间之间
最后,我实际上有两种类型的数据段和否决段。我想返回有时间的事件;
在“data1”段开始时间和结束时间之间和
在“data2”段开始时间和结束时间之间和
不在“veto1”段开始时间和结束时间之间,并且
不在“veto2”段开始时间和结束时间之间
所以从我上面的示例表中,我想要的输出是
event_id event_time
2        4300