J'ai deux tables: Publier et commenter dans une relation de plusieurs à un.Doctrine - Left Joindre avec LIMIT
table post table comment
p_id | name | u_id c_id | p_id | comment | date
1 | post 1 | 1 1 | 1 | blah blah blah | 2017-01-01
2 | post 2 | 2 2 | 1 | blah blah blah | 2017-01-04
3 | post 3 | 1 3 | 2 | blah blah blah | 2017-01-07
... ...
Je souhaiterais récupérer tous les messages de u_id avec leurs 3 derniers commentaires triés par date.
je ferais:
SELECT p, c
FROM p
LEFT JOIN p.comments c WITH c.date IN (SELECT c2.date) FROM App\Bundle\Entity\Comment as c2 WHERE c2.post = p.p_id ORDER BY date ASC LIMIT 3)
WHERE p.user = 1
Mais la doctrine ne permet pas LIMIT, comment je peux faire?
Mec, pourquoi ne vous utilisez SQL brut pour cela? –
Vous pouvez obtenir vos messages seuls à partir du générateur de requête et lorsque la boucle à travers ces messages appelle la méthode getter pour les commentaires associés et affiche simplement les 3 derniers commentaires –