【发布时间】:2019-12-21 22:17:42
【问题描述】:
我在 postgresql 中有两个表没有一个公共字段。
- Table1 有一个 TIMESTAMP 字段。
- Table2 有 FIRST_TIMESTAMP、LAST_TIMESTAMP 和 SEGMENT_ID 字段。
如何根据条件之类的条件将 SEGMENT_ID 字段及其值从 Table2 插入 Table1;
"如果 Table1.TIMESTAMP 在 Table2.FIRST_TIMESTAMP 和 Table2.LAST_TIMESTAMP 之间"
(如果 Table1.TIMESTAMP>=Table2.FIRST_TIMESTAMP AND Table1.TIMESTAMP
答案也可以包括 postgresql UPDATE 语句而不是 INSERT 语句。
感谢您的帮助。
【问题讨论】:
-
Table1 中是否也有 SEGMENT_ID 列?
-
不,表中没有公共字段。
-
那么Table1的哪一列会被更新?
-
我可以在更新语句之前向 Table1 添加一个 SEGMENT_ID 字段。表 1 中的 SEGMENT_ID 字段将根据条件填充。
-
因此,在将 segment_id 字段添加到 Table1 之后,您想要执行类似 MERGE(又名 upsert)表 2 范围内的所有日期 + segment_id 到 Table1 中的操作?
标签: sql postgresql sql-update sql-insert