私はこのクエリを持っています:
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
。それが理にかなっている場合、これはどのように行うことができますか?