我有这个查询:
select pl.photo_id, pl.user_id, pl.liker_id, p1.filename user_filename, p2.filename liker_filename
FROM photo_likes pl
left join photos p1 on (pl.photo_id = p1.photo_id)
left join photos p2 on (pl.liker_id = p2.user_id and p2.avatar = 1)
where pl.user_id = $id order by pl.liker_id, pl.date_liked desc
它得到了正确的数据,但我想修改它以限制数据。所以,简而言之,这个查询会得到所有喜欢他们照片的人的所有喜欢,它工作得很好,这可以为每个人抓取很多照片。但我想将其限制为每个人只能获得 5 个:
所以,说user A
喜欢我的 10 张照片,user B
喜欢我的 8 张照片,喜欢我user C
的 2 张照片,我只想要来自 的最后 5 个,来自user A
的最后 5 个user B
和来自 的最后 2 个user C
。如果这是有道理的,怎么能做到这一点?