另一列的SQL更新列

时间:2014-01-13 23:40:52

标签: sql postgresql join mapping sql-update

我的方案类似于问题中的方案:Replacing a sql column value based on a column another table

我使用以下代码尝试了此方法:

update stager."Supplier" set genid=supplierdim.genid
from stager."Supplier" 
join stager.supplierdim on ("Supplier".company_name=supplierdim.company_name)

我正在使用pgAdmin并且我不断收到此错误:表名称“Supplier”指定了多次。

我做错了吗?我需要替换表stager的字段。“供应商”与stager.supplierdim中的相应字段取决于公司名称,这是两个表中的字段。我这样做是为了将数据从一个表映射到另一个表。

1 个答案:

答案 0 :(得分:1)

因为您引用的问题是为SQL Server标记的,所以这是该数据库的正确语法:

update s
     set genid = sd.genid
   from stager."Supplier" s join
        stager.supplierdim sd
        on s.company_name = sd.company_name;

编辑:

MySQL中的语法是:

update stager."Supplier" s join
      stager.supplierdim sd
      on s.company_name = sd.company_name;
   set s.genid = sd.genid;

编辑II:

这是通用SQL:

update stager.Supplier
    set genid = (select min(genid)
                 from stager.supplierdim sd
                 where Supplier.company_name = sd.company_name
                );