How to query with doctrine dql the where in clause?

doctrine: HAVING clause in DQL query

  • I am working on a simple forum in symfony2 and have the following DQL query to get the last posts in each forum: SELECT p, f.id FROM MyBundle:Post p JOIN p.forum f GROUP BY p.forum HAVING p.created_at >= MAX(p.created_at) Without the HAVING clause it works and fetches the first posts but thats not what I want. What am I doing wrong here? Is this even possible using DQL?

  • Answer:

    Of course it was my fault and not DQL's. :) The updated query is a bit more complex and requires a Subquery. If Someone has a better way to do this, please let me know. 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 ) http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/ completed my fading sql knowledge.

maiwald at Stack Overflow Visit the source

Was this solution helpful to you?

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.