2017-04-26 7 views
1

テーブルにリンクするcreatedbyのINNER JOIN de IDを実行して、1つのレコードを更新し、更新されたレコードのオーナーのEメールを返そうとしています。UPNATEのINNER JOINと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に繰り返しません。 So:

UPDATE requests r 
    SET statusid = 2 
    FROM users u 
    WHERE r.createdby = u.id AND r.id =10 
RETURNING r.id, u.email; 
関連する問題