2016-11-27 5 views
1

の一部上で私は、このテーブルを使用して、各記事の安い卸売業者を見つけたい:グループ複合キー

表Article_Wholesaler

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

主キーがarticle_idに構成されwholesaler_id。

min機能を使用してこれを達成する方法はありますか?

このクエリでは、実際に正しい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

あなたはどのようなDBMSを使用している

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)