Postgresql 基于从其他表中选择更新列

Postgresql 基于从其他表中选择更新列,postgresql,sql-update,Postgresql,Sql Update,我正在尝试根据来自另一个表的slect更新表。两个表的共同名称为coll 因此,格罗姆·希蒂亚尔的想法是获得每个名字的最低价格,并将其更新到名字中的每一行 我试过这里的几个例子,但都没有成功 这是内部选择 SELECT name, MIN(price) FROMhistorial group by name 这应该会更新一个 UPDATE names set MIN_PRICE = min_price_from_select WHERE name = name_from_select 结果应

我正在尝试根据来自另一个表的slect更新表。两个表的共同名称为coll

因此,格罗姆·希蒂亚尔的想法是获得每个名字的最低价格,并将其更新到名字中的每一行

我试过这里的几个例子,但都没有成功

这是内部选择

SELECT name, MIN(price) FROMhistorial group by name
这应该会更新一个

UPDATE names set MIN_PRICE = min_price_from_select WHERE name = name_from_select
结果应该是,使用historial中的最低价格更新表名。

您可以。就你而言:

UPDATE names
SET min_price = q.min_price
FROM (
  SELECT name, MIN(price) as min_price
  FROM historical
  GROUP BY name
) as q
WHERE name = q.name
另一种选择是子选择,但它也会尝试更新所有
名称
,而不仅仅是
历史
中存在的名称:

UPDATE names
SET min_price = (SELECT MIN(price) FROM historical WHERE historical.name = names.name)
“那么这个想法是格罗姆·希托里亚尔的”???