Dynami c Вставка / обновление на основе предложения where в postgresql - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть две таблицы, как показано ниже

ob_period

person_id     ob_start_date

  1            2007/02/11
  2            2008/05/13  
  3            2008/07/29
  4            2006/03/21

посещение

person_id     visit_date

  1            2003/06/21
  2            2005/02/23  
  3            2006/04/19
  5            2004/06/11

Я бы хотел обновить "ob_start_date" таблицы "ob_period" с "visit_date" для visit_table

Я пытался что-то вроде ниже для обновления, но это не может работать, так как я не уверен, как обновить с помощью динамического c значение из другой таблицы

update ob_period a
set a.ob_start_date = b.visit_date
where a.person_id = b.person_id

Я ожидаю, что мой вывод будет таким, как показано ниже

вывод

person_id     visit_date

  1            2003/06/21
  2            2005/02/23  
  3            2006/04/19
  4            2006/03/21

Можете ли вы помочь мне с этим пожалуйста?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Попробуйте это:

 update ob_period a
    set a.ob_start_date = b.visit_date
    from visit b
    where a.person_id = b.person_id
1 голос
/ 21 февраля 2020

Вам нужна ссылка на вторую таблицу:

update ob_period p
    set ob_start_date = v.visit_date
    from visit v
    where p.person_id = v.person_id
...