[英]postgreSQL update from one Table to another based on a ID match
我有一个包含sites
和counties
的数据库。 每个站点都位于一个县。 在sites
表中,已经提到了该县,但我想用ID
替换它,而在另一个表中。
我的更新代码如下:
UPDATE sites
SET cgid = c.gid
FROM (select c.gid as a from counties c
INNER JOIN sites s
ON c.name = s.county) p;
虽然cgid
列中的每个值都相同(第一个县的ID),但表sites
已更新。 我能做些什么来获得正确的价值观?
不应在from
子句中重复update
语句的目标表
所以我想你想要这个:
UPDATE sites s
SET cgid = c.gid
FROM counties c
where c.name = s.county;
这假设counties.name
和sites.county
都是唯一的。
UPDATE sites AS s
SET cgid = c.gid
FROM counties AS c
WHERE c.name = s.county
你不需要JOIN
。 相反,您只需要连接WHERE
子句中的两个表:
UPDATE sites s
SET cgid = c.gid
FROM counties c
WHERE c.name = s.county;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.