我有一个名为 photos
的表,其中包含数十万张用户上传的照片。
每个用户显然可以上传多张照片。
表架构为:
id,
user_id,
photo,
date_created
我只想获取每个user_id发布的最新记录..
我尝试过:
SELECT * FROM photos
GROUP BY user_id
ORDER BY date_created desc LIMIT 300
但这显然会带来很多奇怪的结果。
这似乎是一个简单的查询,但我对堆栈溢出进行了数小时的研究,并阅读了 Google 上的许多不同文章,但我一辈子都无法弄清楚这个简单的查询。
最佳答案
这应该为您提供每个用户的最新行:
SELECT p.user_id, photo, date_created FROM photos p
JOIN (
SELECT user_id, MAX(date_created) max_date FROM photos GROUP BY user_id
) max_dates ON p.user_id = max_dates.user_id AND p.date_created = max_dates.max_date
关于mysql - 根据user_id查询获取所有最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29381154/