次の列を持つ Messages という名前のデータベース テーブルがある場合:-
MessageID, FromUser, ToUser, Message, DateTime
「FromUser」列の個別の値を選択する SQL クエリを作成したいのですが、DateTime で並べ替えられた値も必要です。
基本的に、次のようなクエリ:
SELECT * FROM Messages WHERE ToUser='1' ORDER BY DateTime DESC
次に、次のようなもので個別の FromUser を選択します。
SELECT DISTINCT FromUser FROM Messages WHERE ToUser='1'
同時に、前のクエリからの順序を維持します。
ネストされたクエリを使用しようとしましたが、内部クエリで ORDER BY を使用できないため、問題が発生しました。
基本的に、クエリの構文で表現したい(これは無効ですが...):
SELECT DISTINCT FromUser FROM Messages WHERE ToUser=1 AND FromUser IN
(SELECT * FROM Messages WHERE ToUser=1 ORDER BY DateTime DESC)