使用 postgresql 我有一个表,其中A
包含company_name
、department_name
、一些其他数据和department
.
我有另一个B
简单company_name
的表 ,department_name
和did
。(这是两个有关系的表,但我从中制作了一个视图以使语法更容易。)
我想设置A.department
为B.did
具有匹配名称的行。它是规范化过程的一部分。
根据这个问答我试过:
UPDATE A
SET department=did
FROM A AS A
INNER JOIN B
ON A.company_name = B.company_name AND A.department_name=B.department_name;
但我得到的结果是A.department
,所有行都设置为相同的值。
(我也从这里尝试了不同的语法,但得到了预期的语法错误。)
为什么这不起作用,更具体地说,为什么行没有正确匹配。当我尝试SELECT
加入时,我得到了预期的结果。