基于从另一个表中选择的更新列

问题描述 投票:1回答:1

Im托盘根据另一个表的选择更新表。这两个表的共同名称是coll。

所以这个想法是grom hitorial,以获取每个名称的最低价格,并将其更新为破坏名称的名称中的每一行。

我尝试了这里找到的几个示例,但是没有成功的方法。

这是内部选择

SELECT name, MIN(price) FROMhistorial group by name

这应该更新一个

UPDATE names set MIN_PRICE = min_price_from_select WHERE name = name_from_select

结果应该是,表名称已使用历史记录中的最低价格进行了更新。

postgresql sql-update
1个回答
1
投票

您可以join an UPDATE statement with a FROM clause。您的情况:

UPDATE

替代方法是子选择,但是这还将尝试更新all FROM,不仅是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 中存在的那些:

names
© www.soinside.com 2019 - 2024. All rights reserved.