小编典典

使用来自PostgreSQL中另一个表的相应值填充数据库表列

sql

表1是“ z_scrapestorm_rentals”,表2是“ pcpao_cols”。它们都具有分别名为“
address_1_line_trunc”和“ address_one_line”的地址列。

两个表也都有一个名为“ web_strap”的列,但是只有“ pcpao_cols”在此列中具有不为空的值。

我希望将pcpao_cols.web_strap中的这些值复制到z_scrapestorm_rentals.web_strap中,以用于z_scrapestorm_rentals.address_1_line_trunc与pcpao_cols.address_one_line匹配的行。

我使用了一些不同的查询来执行此操作,但是它们似乎在没有实际更新任何值的情况下成功运行(没有错误),或者出现错误。

方法1:

(没有错误,DBeaver说已更新了124行,但是z_scrapestorm_rentals表中的’web_strap’列中仍然没有任何值…我知道存在匹配项,因为我可以成功查询它们,但似乎无法更新表格。)

UPDATE z_scrapestorm_rentals
    SET web_strap = z_scrapestorm_rentals.web_strap
    FROM pcpao_cols
    WHERE z_scrapestorm_rentals.address_1_line_trunc ILIKE pcpao_cols.address_one_line;

方法2:

(“ SELECT”处或附近的语法错误)

UPDATE z_scrapestorm_rentals
    SELECT
        z_scrapestorm_rentals.*,
        pcpao_cols.web_strap
    FROM z_scrapestorm_rentals
LEFT JOIN pcpao_cols
ON z_scrapestorm_rentals.address_1_line_trunc = pcpao_cols.address_one_line;

方法3:

(错误:对表“ z_scrapestorm_rentals”的FROM-caluse条目的引用无效……提示:表“
z_scrapestorm_rentals”具有一个条目,但无法从查询的此部分进行引用。位置89)

INSERT INTO z_scrapestorm_rentals (web_strap)
    SELECT web_strap
    FROM pcpao_cols
    WHERE z_scrapestorm_rentals.address_1_line_trunc ILIKE pcpao_cols.address_one_line;

任何帮助表示赞赏。


阅读 235

收藏
2021-04-15

共1个答案

小编典典

好的,我回答了自己的问题,并web_strap使用以下查询将另一个表中的值插入到目标表中:

UPDATE z_scrapestorm_rentals
    SET web_strap = pcpao_cols.web_strap
    FROM
        pcpao_cols
    WHERE Z_scrapestorm_rentals.address_1_line_trunc 
ILIKE pcpao_cols.address_one_line
    RETURNING pcpao_cols.web_strap;

我在问题的“方法1”中详细说明的原始查询中缺少的是RETURNING关键字。

2021-04-15