INNER JOIN UPDATE,WHERE更新Postgres中的每条记录

时间:2017-04-26 18:31:22

标签: sql postgresql

我尝试更新单个记录并通过执行链接到createdby表的users的INNER JOIN de ID来返回更新记录所有者的电子邮件。< / p>

以下是查询:

UPDATE requests
SET statusid = 2
FROM requests AS r
INNER JOIN users
ON r.createdby = users.id
WHERE r.id =10
RETURNING r.id, users.email;

但这会更新每条记录,而不是使用WHERE

我做错了什么?

1 个答案:

答案 0 :(得分:3)

在Postgres中,您不会重复FROM中正在更新的表格。所以:

UPDATE requests r
    SET statusid = 2
    FROM users u
    WHERE r.createdby = u.id AND r.id =10
RETURNING r.id, u.email;