选择MySQL

时间:2015-07-28 14:19:24

标签: mysql select group-by subquery

我想从下表中的最低价格获得id_product_attribute

id_product | id_product_attribute  | price
210        | 131                   | 44.950000
210        | 132                   | 39.550000
210        | 134                   | 22.820000
210        | *135                  | 18.250000
211        | 137                   | 36.230000
211        | *138                  | 28.980000

我最接近的是这个查询:

SELECT
    id_product,id_product_attribute,MIN(price) as price
FROM product_attribute 
WHERE price IN(
        SELECT MIN(price) 
        FROM product_attribute 
        GROUP BY id_product)
GROUP BY id_product

虽然成功获得了最低价值(这里有些问题),但它并没有返回正确的id_product_attribute。我在子查询中尝试了一些ORDER BY,但这对我来说也不起作用。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的子查询需要选择min(price) AND id_product,因为这是两个字段,您必须加入派生表,因为您将无法使用{ {1}}再次匹配:

in()