But that, again, includes executing raw sql =) And a lot of side-
queries, btw.

On 19 янв, 14:33, "Cal Leeming [Simplicity Media Ltd]"
<cal.leem...@simplicitymedialtd.co.uk> wrote:
> Here's something you could do.
>
> Execute the raw SQL to bring back just the id's, then whilst iterating over
> that, if you need to grab the ORM'd row, just do "row_orm =
> model.get(id=iterated_id_here)"
>
> This is what I tend to do for raw sql queries.
>
>
>
>
>
>
>
> On Wed, Jan 19, 2011 at 11:26 AM, [CPR]-AL.exe <cpr.al....@gmail.com> wrote:
> > Hmm, yeah, but that still iterates over the objects and filters out
> > them by count on the application server, not on the database one :(
>
> > I'm bypassing it already in my running project, but I try to avoid
> > using raw sql as longer as it is possible. So, the question, actually
> > remains open.
>
> > It should go something like [pseudo-code]:
>
> > Book.objects.values('tablefield').annotate(Count('tablefield')).filter('tab 
> > lefield__count__gte
> > = 1)
>
> > But, of course, that wouldn't work, because annotate's return value is
> > not a queryset :(
>
> > On 19 янв, 14:18, "Cal Leeming [Simplicity Media Ltd]"
> > <cal.leem...@simplicitymedialtd.co.uk> wrote:
> > > Yeah you should be able to use annotate, something like:
>
> > > from django.db.models import Count
> > > res =
>
> > Book.objects.values('tablefield').annotate(Count('tablefield')).order_by('t
> > ablefield')
> > > res2 = filter(lambda x: x.tablefield__count > 1, res)
>
> > > The above is probably not going to work first time, but it would be
> > > something along those lines most likely.
>
> > > I would suggest that for complex queries, bypassing the ORM isn't
> > > necessarily a bad thing, and there are many cases where a developer will
> > > purposely bypass the ORM at bottlenecks and directly query SQL for
> > > optimization.
>
> > > On Wed, Jan 19, 2011 at 11:07 AM, [CPR]-AL.exe <cpr.al....@gmail.com>
> > wrote:
> > > > Umm... Don't know, actually. That seems, that it would be okay, too. Is
> > > > there a way to execute this one using ORM?
>
> > > > On Wed, Jan 19, 2011 at 2:04 PM, Cal Leeming [Simplicity Media Ltd] <
> > > > cal.leem...@simplicitymedialtd.co.uk> wrote:
>
> > > >> May I ask why you didn't just use:
>
> > > >> SELECT id from table GROUP BY tablefield HAVING (COUNT(tablefield) >
> > 1)
>
> > > >> On Wed, Jan 19, 2011 at 11:02 AM, [CPR]-AL.exe <cpr.al....@gmail.com
> > >wrote:
>
> > > >>> Hi there.
>
> > > >>> I'm trying to do something like this:
>
> > > >>> SELECT *
> > > >>> FROM table
> > > >>> WHERE tablefield IN (
> > > >>>  SELECT tablefield
> > > >>>  FROM table
> > > >>>  GROUP BY tablefield
> > > >>>  HAVING (COUNT(tablefield ) > 1)
> > > >>> )
>
> > > >>> Tried it in many ways, but didn't suceed. Is there a way to do it
> > with
> > > >>> Django ORM without having to iterate over objects or using raw SQL?
>
> > > >>> --
> > > >>> You received this message because you are subscribed to the Google
> > Groups
> > > >>> "Django users" group.
> > > >>> To post to this group, send email to django-users@googlegroups.com.
> > > >>> To unsubscribe from this group, send email to
> > > >>> django-users+unsubscr...@googlegroups.com<django-users%2Bunsubscribe@google
> > > >>>  groups.com>
> > <django-users%2Bunsubscribe@google groups.com>
> > > >>> .
> > > >>> For more options, visit this group at
> > > >>>http://groups.google.com/group/django-users?hl=en.
>
> > > > --
> > > > Sincerely yours, Alexey.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscr...@googlegroups.com<django-users%2Bunsubscribe@google 
> > groups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to