これはかなり一般的なケースですが、私が何か間違っているかどうかはわかりません。サブクエリなしの最新データグループ
TABLE POSTS [ ID, USER_ID, TOPIC_ID, TIME ]
私はtopic_id '1'
SELECT p.*
FROM
posts p,
(
SELECT user_id, max(time) mtime
FROM posts
WHERE topic_id = 1
GROUP BY user_id
) pm
WHERE
p.user_id = pm.user_id AND
p.time = pm.mtime
これは正しいです上の各ユーザーによってのみ、最後のポストを取得したいですか?サブクエリなしでこれを行う方法はありますか?
スプリングデータクエリでこのデータを取得するオプションはありますか?これはJDBC /ストアドプロシージャのみのものですか?
これは正しいですが、常に明示的なJOIN構文を使用してください。 – Strawberry
ああ、私はあまりにも早く話しました。サブクエリのSELECTにuser_idを含める必要があります。この場合GROUP BYにtopic_idを含める必要があります(ただし、この場合は厳密には必要ありません) – Strawberry
ドメインから「投稿」への翻訳がうまくいかず、 "topic_id"の代わりに "SELECT user_id、max(time)"である必要があります - 編集済み – qzshard