从postgreSQL中的另一个表填充列值

时间:2017-01-20 12:32:10

标签: postgresql

我有3个表格,如下所示:

1) map(creativeid (integer), campaignid integer))

2) campaigns(id (integer), last_edited (date))

3) creatives(id(integer), last_edited (date))

地图表格中包含creativeid和campaignid,两者都是分别从广告素材和广告系列表引用的外键。

注意:一个广告系列项目可以包含多个广告素材

所以目前我在广告系列表的 last_edited 列中有完整的数据。 因此,我想将广告系列last_edited列中的数据填充到广告素材last_edited列

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

update creatives
set last_edited = s.last_edited
from (
    select distinct on (m.creativeid, m.campaignid)
        m.creativeid, m.campaignid, ca.last_edited
    from
        campaigns ca 
        inner join
        map m on m.campaignid = ca.id
        inner join
        creatives cr on m.creativeid = cr.id
    order by 1, 2, 3 desc
) s
where id = s.creativeid