次のフィールドを持つ「コンテンツ」テーブルがあります。
id (an unique, increasing identifier)
user_id
content1
content2
content3
...
テーブルには、同じまたは異なる からのデータを含めることができますuser_id
。フィールドの 1 つでソートされたデータを選択しようとしていcontent
ます。id
ただし、個別の 'user_id' からデータを選択し、常にユーザーの最新のエントリ (つまり、最高値)を取得したいだけです。group by user_id
並べ替えの前にグループ化が行われるため、単純にできません。
これは私が現在行っていることです:
SELECT *
FROM `content`
WHERE `content`.`id` = (
SELECT `id`
FROM `content` as `alt`
WHERE `alt`.`user_id` = `content`.`id`
ORDER BY `id` DESC
LIMIT 1 )
ORDER BY content1 DESC
動作しますが、テーブルが大きくなると、パフォーマンスが非常に遅くなります。このクエリを改善する方法を教えてもらえますか?