2017-07-04 9 views
0

に参加、私は、エラーメッセージ、「関係 『を持ってNしかし、以下のコードが機能している更新列の値はPostgresの

UPDATE n 
    SET n.var_a = a.var_b 
    FROM table_n n INNER JOIN 
     table_a a 
     ON n.var_c = a.var_d AND lower(n.var_e) = lower(a.var_f); 

を』存在しません」 。どの部分を上記のコードで修正する必要がありますか?私はまた、完全なテーブル名を使用してみました。

SELECT * 
FROM table_n n INNER JOIN 
    table_a a 
    ON n.var_c = a.var_d AND lower(n.var_e) = lower(a.var_f); 

答えて

0

あなたはかなり近いです。これは、Postgresのための正しい構文です:Postgresので

UPDATE table_n n 
    SET var_a = a.var_b 
    FROM table_a a 
    WHERE n.var_c = a.var_d AND lower(n.var_e) = lower(a.var_f); 

、あなたがUPDATE句で更新されているテーブルを指定する必要があります。エイリアスを付けることはできますが、FROM句のエイリアスは認識されません(したがってエラーになります)。

+0

ありがとうございます。魅力のように働きます。 –

関連する問題