特定のuser_idが最初に使用したアイテムを取得するためのクエリを作成しています。ここにいくつかのサンプルデータがあります-
item_id used_user_id date_used
1 1 2012-08-25
1 2 2012-08-26
1 3 2012-08-27
2 2 2012-08-27
3 1 2012-08-27
4 1 2012-08-21
4 3 2012-08-24
5 3 2012-08-23
クエリ
select item_id as inner_item_id, ( select used_user_id
from test
where test.item_id = inner_item_id
order by date_used asc
limit 1 ) as first_to_use_it
from test
where used_user_id = 1
group by item_id
正しい値を返します
inner_item_id first_to_use_it
1 1
3 1
4 1
しかし、巨大なテーブルではクエリが非常に遅くなります。使用できる特定のインデックスや、記述できるより優れたクエリはありますか?