我有两个PostgreSQL表,我希望将一个表中的列的最新值插入另一个表中。我尝试过这样的事情,但我无法让它发挥作用:
INSERT INTO inland (lt_dispatch_level)
SELECT named_lt_dispatch_level
FROM obs
WHERE created_at = (
SELECT MAX(created_at)
FROM obs)
我需要我的inland.lt_dispatch_level =来自obs.named_lt_dispatch_level的最新值。 有没有办法只选择那个值?
答案 0 :(得分:2)
由于您已明确表示要尝试更新另一列中的列,因此需要使用更新语句,而不是插入。我继续编辑答案。
试试这个:
UPDATE inland SET lt_dispatch_level = obs.named_lt_dispatch_level
FROM obs WHERE obs.created_at = (SELECT MAX(created_at)
FROM obs) AND inland.cartodb_id = 1
查询应该返回最新的行。