Установить значение в таблице, если значение связанной таблицы в массиве (postgresql) - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть 2 таблицы, users и profiles.И я хотел бы установить profiles.verified на true, если users.emails находится в списке ('email1','email2',...).

Вдохновлен другими потоками SO, такими как , обновляя строки таблицы в postgres, используя подзапрос Я пытался сделать что-то вроде

UPDATE 
  profiles p1  
SET 
  verified = true
FROM 
  profiles p2
  INNER JOIN users u1 on u1.id = p2.user_id
WHERE 
  u1.email in ('email1','email2',...)

Но он просто обновляет profiles.verified до true для всех записей в profiles.

Как я могу толькообновить profile записи, если они связаны с users записью с адресом электронной почты в указанном списке?

1 Ответ

0 голосов
/ 26 ноября 2018

В Postgres вы не упоминаете, что таблица обновляется дважды:

UPDATE profiles p1  
    SET verified = true
FROM users u1 
WHERE u1.id = p1.user_id AND
      u1.email in ('email1', 'email2', ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...