4

数十万のエントリを持つテーブルがあり、クエリを使用して特定の receiver_id の結果セットを取得し、sender_id でグループ化しようとしています。現在の SQL クエリは機能しますが、ステートメントで 2 つの MAX 呼び出しを使用すると問題が発生する可能性があるかどうかを知りたいです。次のようになります。

SELECT MAX(id) as id, sender_id, receiver_id, MAX(date) as date
FROM     messages
WHERE    receiver_id=5 and belong_to=5
GROUP BY sender_id

テーブルの日付は次のようになります。

id sender_id receiver_id content date                 belong_to           
-- --------- ----------- ------- -------------------  ---------
1  5         7           test    2013-03-11 10:33:54  7
2  5         7           test    2013-03-11 10:33:54  5
3  13        7           test 2  2013-03-13 12:01:36  7
4  13        7           test 2  2013-03-13 12:01:36  13
5  5         7           test 3  2013-03-14 09:15:37  7
6  5         7           test 3  2013-03-14 09:15:37  5
7  25        5           data1   2013-03-15 11:01:36  5
8  25        5           data1   2013-03-15 11:01:36  25
9  16        5           data2   2013-03-17 09:17:17  5
10 16        5           data2   2013-03-17 09:17:17  16
11 25        5           data3   2013-04-05 09:17:17  5
12 25        5           data3   2013-04-05 09:17:17  16

私のクエリからの出力は次のとおりです。

id sender_id receiver_id date               
-- --------- ----------- -------------------
9  16        5           2013-03-17 09:17:17
11 25        5           2013-04-05 09:17:17

MAX 呼び出しを使用したこのクエリに問題はありますか? もしそうなら、代替手段は何ですか?

4

2 に答える 2