我有一张产品表。看起来像这样。
我希望我的输出如下所示。 表示只有单个产品行,其中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)) { ... } }
答案 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)。