0

私はこのテーブルを持っています

UserId   Messagge   Date

1        Hi         2013-01-01
1        Bye        2013-02-01
3        Hi         2013-01-01
2        Hi2        2013-01-02
2        Hi3        2013-01-02

ユーザーが書いたのと同じ順序でユーザーのメッセージのリストが必要です。しかし、SQL クエリ:

select DISTINCT t.UserId from (select UserId,Date from Messages) as t 

戻り値:

1
2
3

サブクエリを日付で並べ替えることができません。とにかく、クエリに対して Distinct を実行しようとすると、ユーザーの ID が常に並べ替えられます。

以下を返す SQL クエリが必要です。

1
3
2

ユーザーが書いた順番

4

1 に答える 1

2
select userid
from (
   select userid, 
          min(date) as min_date
   from messages
   group by userid
) t
order by min_date

SQLFiddle の例: http://sqlfiddle.com/#!3/015ff/1

ところで:date列の恐ろしい名前です。1 つ目は、予約済みのキーワードでもあるため、2 つ目は、その意図が文書化されていないためです。「投稿日」、「編集日」、「削除日」、「公開日」、またはまったく別のものですか?

于 2013-09-29T11:46:42.067 に答える