0

私はこのようなテーブルを持っています(簡略化) :

table t
PostID --- ユーザー ID --- 長さ

PostID は一意ですが、Userid は一意ではありません。ユーザーは複数の投稿を行う場合があります。
ここで、最長の投稿のランクリストを作成したいと思い、次のようにしました。

SELECT DISTINCT(Userid), PostID FROM table t ORDER BY `Length` desc LIMIT 10


PostID--- Userid--- Length
1 --- 100 --- 3,203 15
--- 942 --- 3,194
45 --- 100 --- 2,093

そのため、ユーザーはランク付けされる 2 つの投稿を作成しました。しかし、私は DISTINCT 句でこれらの重複を避けると思いましたか?
私は何を間違っていますか?

4

2 に答える 2

1

論理的には、最長の投稿で注文するだけなので、 DISTINCT を実行したくないようです。

本当に最長の投稿を取得したいだけで、同じユーザーがリストに複数回表示されることがありますか?

SELECT Userid, PostID FROM table t ORDER BY `Length` desc LIMIT 10

個別が機能しない理由は、PostID も返しているためです。PostID を削除すると、個別の UserID が取得されます。

あなたが望むと思うことを行うには、ここで述べたようにサブクエリを実行する必要があります。

于 2013-09-02T01:09:22.727 に答える
0

DISTINCT結果から重複行を削除しています。Userid が 100 の 2 つの行は、他の列の値が異なるため、重複していません。

于 2013-09-02T01:10:12.033 に答える