PostgreSQL中根据另一表的值来更新一个字段

时间:2025-04-04 17:10:13

UPDATE table1
SET value = t2.new_value
FROM table2 t2
WHERE table1.id = t2.reference_id;

解释

  • UPDATE table1:指定要更新的表,不要用别名。

  • SET value = t2.new_value:设置要更新的字段及其新值,这里新值来自 table2。也可更新多个字段值

  • FROM table2 t2:指定另一个参与的表,并给它一个别名(这里是 t2),以便在WHERE子句中引用。

  • WHERE table1.id = t2.reference_id:指定更新条件,即哪些行应该被更新。这里我们通过匹配两个表的ID字段来决定哪些行应该被更新。

注意:

要更新的表不要用别名