我有一个包含以下字段的表“内容”:
id (an unique, increasing identifier)
user_id
content1
content2
content3
...
该表可以包含来自相同或不同的数据user_id
。我正在尝试选择按其中一个content
字段排序的数据。但是,我只想从不同的“user_id”中选择数据,并始终采用用户的最新条目(因此是最高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
它可以工作,但是一旦表变大,性能就会变得太慢。有人可以给我一个建议如何改进这个查询吗?