テーブルから特定のオブジェクトを気に入ったユーザーをプルするクエリがありusers
ます。評価はratings
テーブルに保存されます。私がこれまでに思いついたクエリは次のようになります。
SELECT user.id, user.name, user.image
FROM users
LEFT JOIN ratings ON ratings.userid = user.id
WHERE rating.rating > 0
AND rating.objectId IN (1,2,3,4)
LIMIT
IDごとに3つ程度の結果しか必要ない場合に、すべての結果が返されないように、このクエリにを追加できるようにしたいと思います。たとえばLIMIT 12
、1つのIDで8つのレコードを取得し、他のレコードではそれぞれ1つまたは2つのレコードを取得する可能性があります。つまり、ID間での不均一な分布です。
(オブジェクトが少なくとも3回「いいね」されたと仮定して)、リスト内のIDごとに3つの結果が得られることを保証するように、このクエリを作成する方法はありますか?