我正在尝试在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的新手,所以我非常感谢任何可以解释如何解决此问题的人。