我有两张桌子,users
和profiles
。如果profiles.verified
在列表true
中,我想将users.emails
设置为('email1','email2',...)
。
受其他类似于updating table rows in postgres using subquery的线索的启发,我一直在尝试做一些类似的事情,
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
记录相关,我如何才能更新它们? 最佳答案
在Postgres中,您不会提到要更新两次的表:
UPDATE profiles p1
SET verified = true
FROM users u1
WHERE u1.id = p1.user_id AND
u1.email in ('email1', 'email2', ...)
关于sql - 如果数组中的相关表值是在表上设置值(PostgreSQL),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53472559/