2017-04-26 46 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;