3

私はsymfony2の単純なフォーラムに取り組んでおり、各フォーラムの最後の投稿を取得するために次のDQLクエリを持っています:

SELECT p, f.id FROM MyBundle:Post p
JOIN p.forum f
GROUP BY p.forum
HAVING p.created_at >= MAX(p.created_at)

HAVING 句がなくても機能し、最初の投稿を取得しますが、それは私が望むものではありません。

ここで何が間違っていますか?これはDQLを使用しても可能ですか?

4

1 に答える 1

3

もちろん、それは私のせいであり、DQL のせいではありません。:) 更新されたクエリはもう少し複雑で、サブクエリが必要です。誰かがこれを行うより良い方法を持っている場合は、私に知らせてください。

SELECT post, f.id as forum_id FROM MyBundle:Post post
JOIN post.forum f
WHERE post.id in (
    SELECT MAX(p.id) FROM MyBundle:Post p
    GROUP BY p.forum
)

このブログ投稿で、私の薄れゆく SQL の知識が完成しました。

于 2011-12-05T15:34:42.163 に答える