如何在Postgresql中连接两个表以更新一个表
我有两个表user\u table和subscription\u table如何在Postgresql中连接两个表以更新一个表,sql,postgresql,Sql,Postgresql,我有两个表user\u table和subscription\u table | email(varchar) | type(varchar)| is_subscribed(boolean) ------------------------------------------------------------------ | abc@gmail.com | news | true | abc@gma
| email(varchar) | type(varchar)| is_subscribed(boolean)
------------------------------------------------------------------
| abc@gmail.com | news | true
| abc@gmail.com | video | false
| def@gmail.com | news | true
| def@gmail.com | video | true
用户表
| user_id(int)| email(varchar) | phone(int)|
------------------------------------------------
| 1 | abc@gmail.com | 9910256256 |
| 2 | def@gmail.com | 8856956325 |
| 3 | ghi@gmail.com | 8745692455 |
| 4 | jkl@gmail.com | 7852369526 |
订阅表
| email(varchar) | type(varchar)| is_subscribed(boolean)
------------------------------------------------------------------
| abc@gmail.com | news | true
| abc@gmail.com | video | false
| def@gmail.com | news | true
| def@gmail.com | video | true
我有user\u id
,想更新is\u订阅
。更新的最佳方法是订阅
我曾尝试使用多个查询来完成此操作,但我认为这并不好。这是您想要的吗
update subscription_table s
set is_subscription = ?
from user_table u
where u.email = s.email and u.user_id= ?;
注意:如果您有一个用户id
,则应该将其用于外键关系。我不明白为什么电子邮件会被用于此目的。更新的逻辑是什么?订阅表中的电子邮件也在用户表中。我也想通过在现有电子邮件中添加一些文本来更新电子邮件,如[abc@gmail.com---->abc-cancel@gmail.com]. 你能告诉我在这个查询@Gordon Linoff中我该怎么做吗