我有两个带有传感器数据的表,我想将两个表合并为一个。
表1:
Sensor1 | Timestamp
34 2018-22-05 23:23:34
25 2018-22-05 22:23:23
51 2019-22-05 12:34:56
表2:
Sensor2 | Timestamp
27 2018-22-05 23:37:33
29 2018-22-05 22:36:47
66 2019-22-05 12:34:56
我想要的结果是:
预期表:
Sensor1 | Sensor2 | Timestamp
27 2018-22-05 23:37:33
34 2018-22-05 23:23:34
29 2018-22-05 22:36:47
25 2018-22-05 22:23:23
51 66 2019-22-05 12:34:56
我们不太可能在两个表中都有相同的时间戳,但即使我们这样做,在两个传感器列中都有值也不应该是个问题。
我尝试使用UNION,UNION ALL,OUTER JOIN,但我总是最终得到两个时间戳列。
有人有想法吗?
谢谢和最诚挚的问候, 罗德里戈。
答案 0 :(得分:1)
根据您使用最简单的方法执行此操作的SQL风格,可能会使用FULL OUTER JOIN,类似这样的内容;
select
t1.Sensor1,
t2.Sensor2,
coalesce(t1.Timestamp, t2.Timestamp) as Timestamp
from
table1 t1 full outer join table2 t2 on t2.Timestamp = t1.Timestamp
答案 1 :(得分:0)
print('The new key to decrypt the message is', newKey)
new_key(key)
答案 2 :(得分:0)
如果表中没有重复项,并且您想要合并两个表的结果,我建议聚合:
select max(sensor1) as sensor1, max(sensor2) as sensor2, timestamp
from ((select Sensor1, null as Sensor2, timestamp from t1
) union all
(select null, Sensor2, timestamp
from t2
)
) t
group by timetamp
order by timestamp desc;