我有一个 table 地址
adr_id | adr_over | adr_debitor |
1 | NULL | 235567 |
2 | NULL | 235587 |
~
45678 | 1 | NULL
45679 | 2 | 0
~
现在我想更新列 adr_debitor
adr_id | adr_over | adr_debitor
1 | NULL | 235567
2 | NULL | 235587
~
45678 | 1 | 235567
45679 | 2 | 235587
~
我试过:
UPDATE adresse
SET adr1.adr_debitor = adr2.adr_debitor
FROM adresse adr1
INNER JOIN adresse adr2
ON adr1.adr_over = adr2.adr_id
AND adr1.adr_over IS NOT NULL
但是有一个语法错误。
最佳答案
您不能在更新语句中使用这样的 inner join
。而且你也只需要在 from
子句中列出连接表,而不是目标表:
UPDATE adresse adr1
SET adr1.adr_debitor = adr2.adr_debitor
FROM adresse adr2
WHERE adr1.adr_over = adr2.adr_id
不需要条件
AND adr1.adr_over IS NOT NULL
,因为条件 adr1.adr_over = adr2.adr_id
只有在 adr1.adr_over
不为空时才会为真。关于postgreSQL - 更新同一个表中的一列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36472765/