2016-11-27 66 views
1

一部分,我想找到每篇文章的最便宜的批发商只使用该表:集团通过对复合键

表Article_Wholesaler

article_id  wholesaler_id  price 
1     1    500 
1     2    1000 
2     1    300 

主键组成的article_id和的wholesaler_id。

有没有办法用最小函数来实现这一目标?

这个查询实际上并不返回正确的wholesaler_id,但为了使用该查询作为子查询我所需要的主键的两个部分...

select aw.article_id, aw.wholesaler_id, min(aw.price) as min_purchase_price 
from Article_Wholesaler aw 
group by aw.article_id; 

感谢您的帮助:) 。

+0

您正在使用什么数据库管理系统? –

+0

只是一个简单的mysql – taranaki

+1

请参阅[_Groupwise Max_](http://mysql.rjweb.org/doc.php/groupwise_max)(或MIN,在你的情况下) –

回答

1

您可以通过使用与A组子查询

select aw.article_id, aw.wholesaler_id, aw.price 
    from Article_Wholesaler aw 
    where (aw.article_id, aw.price in (select article_id, min(price) 
             from Article_Wholesaler 
             group by article_id) 
1

你不要为这个使用组。你可以这样做:

Select t.* 
From t 
Where t.price = (select min(t2.price) from t t2 where t2.artickeid = t.articleid)