一个sql查询,用于从产品列表中获取小的qty值

时间:2015-01-11 19:52:07

标签: mysql

我有一张产品表。看起来像这样。

我希望我的输出如下所示。 表示只有单个产品行,其中qty是小的


id Product Qty Rate 1 AAAA 200 100 1 AAAA 400 200 1 AAAA 800 400 2 BBBB 500 150 2 BBBB 1000 300
我需要像这样的输出。仅表示产品的小数量显示

        id     Product     Qty    Rate 
        1     AAAA       200     100 
        2     BBBB       500     150 

我写了这个查询,但它可以是一个带有一个while循环的查询。

$query="SELECT  id FROM hproducts where category='".$category."'group by  id order by qty";
    $result=mysql_query($query);
    while($notic = mysql_fetch_array($result))
    {       
    $query2="SELECT  id,productname,rate,qty,image FROM hproducts where id='".$noti['id']."'group by  id,productname,rate,qty,image order by qty limit 1";
    $result2=mysql_query($query2);
    while($noticia = mysql_fetch_array($result2))
    {
     ...
    }
    }

1 个答案:

答案 0 :(得分:1)

尝试此查询。

$query = "
  select
    p1.id, p1.rate, p1.qty, p1.image
  from
    hproducts p1
    inner join (
      select id, min(qty) as qty from hproducts ps group by ps.id
    ) p2 on p2.id = p1.id and p2.qty = p1.qty
  where p1.category = '$category'";

子选择获得每个产品的最低数量,然后将其连接(并因此用作过滤器)用于hproduct(别名p1)。