我有一个像这样的数据表:
- PK_table - merchantName - price - Product
- 1 - argos - 7 - 4
- 2 - comet - 3 - 4
- 1 - Dixon - 1 - 3
- 1 - argos - 10 - 4
我希望在mysql中选择产品和相应商家的最低价格。
我试过了:
SELECT Product, merchantName, min(price)
FROM a_table
GROUP BY product
但是返回的结果不正确,因为它选择的是第一个商家名称,而不是MIN的相应商家。
你怎么做的?答案 0 :(得分:7)
SELECT Merchant.Product, Merchant.Name, Merchant.Price
FROM a_table AS Merchant
JOIN
(
SELECT Product, MIN(Price) AS MinPrice
FROM a_table
GROUP BY Product
) AS Price
ON Merchant.Product = Price.Product
AND Merchant.Price = Price.MinPrice
如果两个商家具有相同的低价格,则会返回两行。