【发布时间】:2020-06-10 13:35:28
【问题描述】:
我有这样的A表。
id | eventtime
--------------
1 | 2020-05-01 10:00:12
2 | 2020-04-03 04:04:23
3 | 2020-06-01 00:01:00
表 B
qid|id | timestamp | status
-------------------------------------
1 | 1 | 2020-04-03 01:00:00 | Y
2 | 1 | 2020-05-02 04:11:00 | N
3 | 2 | 2020-04-02 03:00:00 | Y
4 | 4 | 2020-06-01 01:00:00 | N
5 | 4 | 2020-06-03 01:00:00 | Y
我想加入这些表,但是当时间戳>表 A 的事件时间时,它应该返回表 B 数据。
EG:
来自表 B,
对于 id 1 我有 3 行,但我需要选择时间戳> tableA.eventtime 的行
所以2 | 1 | 2020-05-02 04:11:00 | N
对于id 2,timestamp值小于tableA的事件时间,所以略过。
所以选中的行是2 | 1 | 2020-05-02 04:11:00 | N
对于 id 4,没有 eventtime,实际上,表 A 上没有 ID 4 的行。所以现在我需要为此传递一个默认时间戳。那是2020-06-02 00:00:00
所以选中的行是5 | 4 | 2020-06-03 01:00:00 | Y
预期输出:
qid|id | timestamp | status
-------------------------------------
2 | 1 | 2020-05-02 04:11:00 | N
5 | 4 | 2020-06-03 01:00:00 | Y
我在为此编写逻辑时卡住了?有人可以帮我吗?
【问题讨论】:
-
请用您尝试过的查询更新您的问题
标签: sql postgresql join