【发布时间】:2021-11-21 05:54:07
【问题描述】:
我有两个如下所示的数据库:
表 1
| ID | time1 |
|---|---|
| 1 | 21.3.2000, 16:00 |
| 1 | 21.3.2000, 17:00 |
| ... | ... |
| 2 | 21.3.2000, 16:00 |
| ... | ... |
表 2
| ID | time2 |
|---|---|
| 1 | 21.3.2000, 16:30 |
| 1 | 21.3.2000, 18:00 |
| ... | ... |
| 2 | 21.3.2000, 15:30 |
| ... | ... |
对于每个ID,我有几个日期time1 和time2。
对于每个time1,我想要最接近的time2,它也不大于time1。
我尝试过,但甚至像这样构建 carthesian 产品:
SELECT h."ID", h."time", m."time"
FROM Table1 as h, Table2 as m
WHERE h."ID" = m."ID"
由于数据量很大,加载时间很长,有什么办法可以提高速度并获得相同的结果?
【问题讨论】:
-
您的应用程序是否允许您限制时间范围?你能说“对于每个
time1,我想要在time1两小时内最接近的time2”或类似的限制吗? -
这可能行得通,但并不理想,但如果我对时间框架很慷慨,那应该没问题,如果您有示例代码,请与我分享吗?
-
你说得对,time2应该在table2,我的错
-
如果 time1 是
21.3.2000, 16:00,您只想考虑大于它的时间还是考虑更小的时间,例如21.3.2000, 15:45与21.3.2000, 16:30? -
我想匹配最接近 time1 但不大于 time1 的,我一定要把它添加到问题中!
标签: sql database postgresql