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
结果应该是,表名称使用历史记录中的最低价格进行了更新。
答案 0 :(得分:2)
您可以join an UPDATE
statement with a FROM
clause。就您而言:
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
替代方法将是子选择,但是这还将尝试更新 all names
,不仅是historical
中存在的那些>
UPDATE names
SET min_price = (SELECT MIN(price) FROM historical WHERE historical.name = names.name)