如何显示组的MIN值及其对应的字段?

时间:2019-04-08 05:43:51

标签: mysql

我正在尝试在MySQL中构造一个查询,以显示每个产品系列中价格最低的产品。

此代码可显示每个产品系列中的最低价格:

SELECT MIN(buyPrice), productLine
FROM products
GROUP BY productLine;

但是,当我尝试选择相应的产品名称时:

SELECT productName, MIN(buyPrice), productLine
FROM products
GROUP BY productLine;

返回随机的产品名称,而不是与最小值对应的名称。

我在Stack Exchange上发现确实提供正确名称的查询:

SELECT p1.productName, p1.buyPrice, p1.productLine
FROM products AS p1
WHERE buyPrice = 
(SELECT MIN(buyPrice) 
FROM products AS p2
WHERE p1.productLine = p2.productline);

但我不知道为什么行得通。

有没有更简单的方法来执行此查询?我是MySQL的新手,所以我非常感谢任何可以解释如何解决此问题的人。

0 个答案:

没有答案