我有2个表,users
和profiles
。如果profiles.verified
在列表true
中,我想将users.emails
设置为('email1','email2',...)
。
受updating table rows in postgres using subquery等其他SO线程的启发,我一直在尝试做类似的事情,
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
记录相关,该如何更新?
答案 0 :(得分:1)
在Postgres中,您不会提及该表被两次更新:
UPDATE profiles p1
SET verified = true
FROM users u1
WHERE u1.id = p1.user_id AND
u1.email in ('email1', 'email2', ...)