1

SQLクエリを価格でソートするために、数時間試しました。どうぞ:

テーブルINFO

id (unique id)
mid (some id)
name 

テーブルPRICES

id (some unique id)
fuid (id for showing wich entry from INFO this price is connected to)
dated (date)

SQL クエリ:

select INFO.id, INFO.mid, INFO.name, PRICES.price, PRICES.dated
from INFO, PRICES
WHERE INFO.id = PRICES.fuid
ORDER BY PRICES.dated asc
limit 100

INFO必要な結果は、 の最新価格のすべてのエントリのリストですPRICES。最新の価格のみ、INFOエントリごとに 1 つの価格。

得られるもの: から一意のエントリのリストを取得しますが、最新ではなくINFO最初に入力された価格を取得します。PRICES

max()価格列の並べ替えを手伝ってもらえません。これを解決する方法を知っている人はいますか?

4

1 に答える 1

1

で使いGROUP BYましたMAX()か?MAX()andを次のように使用すると、GROUP BYおそらく必要なことが実行されます。

select INFO.id, INFO.mid, INFO.name, PRICES.price, MAX(PRICES.dated) 
from INFO, PRICES 
where INFO.id = PRICES.fuid
group by INFO.id, INFO.mid, INFO.name, PRICES.price
order by INFO.name asc 
limit 100

ORDER BY列は何でもかまいません。である必要はありませんMAX(PRICES.dated)

編集:あなたの言いたいことがわかります。このSQL Fiddleのような一時テーブルを使用できます。

于 2013-01-06T22:59:02.287 に答える