2012-03-09 5 views
-2

誰かが私を助けてくれるのだろうかと思っています。MySQLクエリ - 間違った結果を示す別のものを選択してください

私は画像などがなどなどに名前を付け、基本的に各アップロードが作成したデータを使用してデータベースに独自の行を持ち、ユーザーIDを自分のサイトに画像をアップロードする何百人もの人々を持っている私は何をしたいのか

が表示されます最後の3人のユーザーが画像をアップロードする問題は、ユーザーが写真をアップロードすると、そのユーザーIDを持つ別の行がデータベースに追加され、最後の3行だけを表示できることです。

は、私は次の文を持っているが、それはイム間違っている誰かが私を指摘することができれば、私は思っていた

SELECT DISTINCT * FROM kicks GROUP BY uid ORDER BY created DESC LIMIT 3 

正常に動作しているように見えるdoes notの。

乾杯

申し訳ありませんが、私は、サンプルデータ、OK

IDを追加している必要があります| UID |作成された|

195 | 33 | 2012-03-06 12:32:54
196 | 33 | 2012-03-06 12:35:23
197 | 34 | 2012-03-06 13:09:31
198 | 19 | 2012-03-08 10:37:21
199 | 33 | 2012-03-09 21:04:04

+0

DISTINCTは、期待どおり行全体に適用されます。最後の3をどのように適用すべきかをより明確に説明できますか?SQLは簡単ですが、実際に何を意味するかによって異なります... – gbn

+0

uidはユーザーIDかキックのユニークキーですか?返されるデータは何ですか? – kaj

答えて

4

SELECT DISTINCT uid FROM kicks ORDER BY created DESC LIMIT 3はあなたが望むものです。

+0

これは動作しません – BigJobbies

+1

試しましたか?これはかなりストレートです、私はそれが動作することを99%確信しています。作業のサンプルデータを提供してください。 – slash197

+0

これは*「最後の3人のユーザーが画像をアップロードする」*です。 –

0

このお試しください:

SELECT * FROM kicks WHERE uid IN (
    SELECT DISTINCT uid FROM kicks ORDER BY created DESC 
) LIMIT 3 

たりID列がauto_incrementedされている場合、それによって注文してみてください。

SELECT * FROM kicks WHERE uid IN (
    SELECT DISTINCT uid FROM kicks ORDER BY id DESC 
) LIMIT 3 
+0

これはどちらかの仕事をしません... '作成された'フィールドがdatetimeであることは重要ですか? – BigJobbies

+0

いいえ、問題ではありません.STOW CREATE TABLEのキックをポストしてください。 – rkosegi

+0

サンプルデータで質問を更新しました – BigJobbies

0

データベース固有のIDフィールドを持っているので、新しい行がありますが新しい一意のIDです。つまり、SELECT *を使用している場合は、各フィールドが異なるため、DISTINCTは重複しています。私が言うのと同じように

*すべてのフィールドは別個のものである手段を用いて、

SELECT DISTINCT uid FROM kicks 
ORDER BY created 
DESC LIMIT 3 

ような何かをしようとしないのはなぜ。

e:データベース構造に関する情報を追加する必要があります。これは、フィールドの選択方法を理解するのに役立ちます。

0

あなたの質問には本当に問題はありません。唯一の問題は、ユーザーごとにグループ化する場合、MAX()などの機能を使用してユーザーに最大のアップロード時間を出力する必要があることです。あなたと同様のデータを使って作業しています。これは、クエリの結果に列「最新」を追加します

SELECT uid, MAX(created) as latest FROM kicks GROUP BY uid ORDER BY created DESC LIMIT 3 

はのラインのようなものを試してみてください)

あなたが必要な場合は、ユニークなIDの行を表示しないことができます私のバージョンそれは何らかの理由でありますが、私が受け入れたDISTINCTのバージョンは、必要でない場合にはより洗練されていると思います。

関連する問題