2017-01-11 6 views
0

У меня есть 2 таблицывытягивать данные из одной таблицы в другую в PostGreSQL

1) campaigns(campaign_id(int), last_modified(date))
2) events(resource_id(int), event_time(date))

Поэтому я написал запрос, который вытаскивает данные из таблицы событий, выдвигая на кампании стол для одного campaign_id(755)

update campaign_items 
set last_modified = (
     select event_time 
     from events 
     where request = '/campaignitem/add' 
      and resource_id = 755 
     order by event_time desc limit 1 
     ) 
where id = 755 

Так что теперь я хотел бы сделать то же самое для всех CAMPAIGN_ID из таблицы кампании

Не могли бы вы сказать мне решение для нее

ответ

1

Если я правильно понял следующее заявление обновление вы ищете

Я предполагаю, что campaign_items.id связано с events.resource_id

update campaign_items 
set last_modified = evt.event_time 
from (
    select max(event_time) event_time 
     ,resource_id 
    from events 
    where request = '/campaignitem/add' 
    group by resource_id 
    ) evt 
where evt.resource_id = campaign_items.id 
+1

Спасибо много. Его работа абсолютно прекрасна – sForSujit