ユーザー表あたり制限行MYSQL:前記()
ID
user_comments表
ID | user_id |コンテンツ|
のcreated_at私は、ユーザーIDのリストを持っている、と私は、ユーザーIDごとの最新の3件のコメントをつかむしたいです。
SELECT * FROM user_comments WHERE user_id IN (1, 2, 3, 4, 5)
ORDER BY created_at DESC
LIMIT 3;
これは、すべての一致するIDが、私は各 IDの最後の3件のコメントをしたいから最後の3件のコメントをつかむだろう。 1つのクエリは、ユニオンを使用しないことが好ましい
私は右自体にテーブルに参加しようとしているが、私はそれが権利を取得するように見える傾けます。
** 編集:私は発注のためのidカラムに頼ることができない、それは日付列を使用する必要があります。
ありがとうございました。
** 私の最終解決
SELECT user_comments.* FROM user_comments
LEFT OUTER JOIN user_comments user_comments_2
ON user_comments.post_id = user_comments_2.post_id
AND user_comments.id < user_comments_2.id
where user_comments.post_id in (x,x,x)
GROUP BY user_comments.id
HAVING COUNT(*) < 3
ORDER BY user_id, created_at
@PaulSpiegelによって提案された答えは(警告を)私のために仕事をした、しかし、私は上記の一緒に行くことになった私が使用して作られたソリューションに参加このスレッドからの情報:ビルKarwin言及link
。
ありがとうございました!
SELECT * FROM user_id = 1またはuser_id = 2またはuser_id = 3またはuser_id = 4 ORDER BY created_at DESC LIMIT 3; –
AUTO_INCREMENT列はありますか? –
@PaulSpiegel - はい、id列はauto_incです。 – magnito