如何从 PostgreSQL 中的自连接 table 更新列?

How to UPDATE a column from a self join table in PostgreSQL?

我需要用自联接中的列替换列 table,但出现错误。我应该怎么办?谢谢!

UPDATE a
SET propertyaddress=COALESCE(a.propertyaddress,b.propertyaddress)
FROM Housing a
JOIN Housing b
  ON a.ParcelID=b.ParcelID
  AND a.uniqueid!=b.uniqueid
WHERE a.propertyaddress IS NULL); 

错误:关系“a”不存在 第 32 行:更新一个 ^

您正在使用 Microsoft-Syntax 进行更新。 (并且您不需要 COALESCE(),因为 a.propertyaddress 始终为 NULL)

Postgres documentation for UPDATE


UPDATE Housing a
SET propertyaddress = b.propertyaddress
FROM Housing b
WHERE a.ParcelID = b.ParcelID
  AND a.uniqueid <> b.uniqueid
  AND a.propertyaddress IS NULL
  ;