我尝试使用过滤器基本上更新表中的行子集,但目前我的查询正在更新所有值而不是预期的子集。我不确定我错过了什么。
这是当前(不工作)update
的样子。
UPDATE account_type
SET type_id = 3
FROM my_filter;
我已经能够成功选择我想要的数据,我只是无法弄清楚如何让更新发挥作用。我可以使用以下select
语句正确访问这些字段。
SELECT account_type FROM my_filter;
但是当我尝试更新时,它会更新每个字段。以下是我所看到的(工作)join
的内容,包含在CTE中。
WITH my_filter AS
(
SELECT account_type.type_id, username
FROM account_type
INNER JOIN user ON user.account_id = account_type.account_id
WHERE username LIKE 'filter%'
)
答案 0 :(得分:2)
您需要popen()
条件。我猜:
join
另外,您可以将其写为:
UPDATE account_type
SET type_id = 3
FROM my_filter
WHERE account_type.type_id = my_filter.type_id;