在实现以下代码时,我收到了错误消息,"关系" n"不存在"
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 :(得分:0)
你非常接近。这是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);
在Postgres中,您需要在UPDATE
子句中指定要更新的表。您可以为其指定别名,但无法识别FROM
子句中的别名(因此您的错误)。