我的方案类似于问题中的方案: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中的相应字段取决于公司名称,这是两个表中的字段。我这样做是为了将数据从一个表映射到另一个表。
答案 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
);