2017-04-26 64 views
1

我试图更新单个记录并通过执行createdby的链接到users表的INNER JOIN de ID返回更新记录的所有者的电子邮件。内部加入更新与在哪里更新Postgres中的每条记录

这里的查询:

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的。

我在做什么错?

回答

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;