我正在尝试编写一个子查询,该子查询将选择最高价格以及与该最高价格相关联的商品名称。
例如:
ID | Price | Item Name
1 | 28.99 | Lamp
2 | 13.99 | USB Cable
我期待得到" 28.99"和" Lamp"用我的子查询。主查询看起来像这样:
SELECT
i.id
FROM
inventory i
我在主查询中的子查询看起来像这样:
SELECT
i.id,
(SELECT MAX(pl.price) FROM price_list pl WHERE pl.id = i.id) AS highest,
(SELECT MAX(pl.item_name) FROM price_list pl WHERE pl.id = i.id) AS highestName
FROM
inventory i
但是,在项目名称上使用MAX()将返回排名最高的字母名称,这不是我想要的。我想让物品名称与最高价格相关联。最有效的方法是什么?
答案 0 :(得分:2)
您可以使用子查询匹配where
select price as highest , item_name highestName
from price
where price = (
select max(Price)
from price_list
)
答案 1 :(得分:0)
可以使用以下查询完成:
SELECT Price, Name
FROM price_list
WHERE Price = (SELECT MAX(PL.Price) FROM price_list PL)