2011-01-28 3 views
2

私はこの表から最高の/最高のオファーを店で購入する必要があります!ベスト・ギフトを得るMySQLのクエリ

offer | f_shop | price 
5253   100  10 
5254   101  12 
5255   101  16 
5256   102  25 
5257   102  11 
5258   100  36 

お店で最高のオファーを得るには、どのような方法が最適ですか? Group byとmax()は正しい結果を返しません。


私の質問は十分に正確ではありません。申し訳ありません。ここで

は私の実際のクエリです:

SELECT s.ch_f1 shop, a.ch_f3 price,a.bool_f11 currency,aa.priority AS priority FROM offers a LEFT JOIN shops s ON a.ch_f5=s.extern_id LEFT JOIN offertypes aa ON a.f_offertype=aa.id WHERE 
s.bool_f1=1 AND 
a.bool_f1=1 AND 
a.bool_f4=0 
ORDER BY priority ASC, price DESC, currency 

これが結果です:

shop; price; currency; priority 
Shop A 100.00 1 1 
Shop B 50.00 1 1 
Shop C 50.00 1 1 
Shop D 50.00 1 1 
Shop E 50.00 1 1 
Shop B 50.00 1 1 
Shop A 50.00 1 1 
Shop F 40.00 1 1 
Shop G 40.00 1 1 
Shop H 40.00 1 1 
Shop B 39.00 1 1 
Shop B 35.00 1 1 
Shop B 33.00 1 1 
Shop A 30.00 2 1 
Shop A 30.00 2 1 
Shop X 30.00 2 1 
Shop Y 30.00 2 1 
Shop Z 30.00 2 1 
Shop Q 30.00 2 1 

しかし、私はすべての利用可能なショップから最善のオファーを持っていると思います。 そして私は注文値も必要です。 私はこれをどのように行うことができるのか分かりません。

+0

のグループごとの最大値が格納されていますか? – eumiro

+0

ベストオファー==最低価格ですか? – Nishant

+0

作業していない質問を投稿し、質問に具体的にお答えください –

答えて

0

あなたはこれを行うことができます与えられたお店のための最高のオファーたい場合:

select max(offer) from yourtable where f_shop = 100; 
+0

反対の場合はminをminに置き換えてください。私は最低価格。 – diagonalbatman

+0

私は知らないけど、これはオファーIDだと思うかもしれませんが、彼が価格で最大にしたいかもしれません –

+0

@shaktiなぜあなたはコメントが分からないのですか? –

0

をあなたはこの

select * from table group by f_shop having max(price) 

を探しているかもしれすべてのお店が最大価格で行与えます。

関連する問題