[BangPypers] getpython.net Sprint (was Re: User group meeting)
akm
ak.m.mail at gmail.com
Mon Jan 31 12:30:01 CET 2011
> One query is ready but need to convert it into SQLAlchmey.
> Here is the query (it's working fine):
>
> # select * from distributions inner join (select * from comments where
> # comments.id in (select max(comments.id) as id from comments group by
> # comments.distribution_id)) a on distributions.id = a.distribution_id
> # order by a.datetime desc
>
> (The above logic is to find the latest feedback without duplicate distribution
> names. For example if a distribution has two recent feedback, I just
> need latest among those. And I need to get total 5 latest feedbacks)
>
try this out:
from sqlalchemy.sql import func
stmt1 = session.query(func.max(Comments.id)).group_by(Comments.distribution_id)
stmt2 = session.query(Comments).filter(Comments.id.in_(stmt1)).subquery()
query = session.query(Distributions).join((stmt2,
Distributions.id ==
stmt2.c.distribution_id)).order_by(
stmt2.c.datetime)
print query.all()
Thanks,
Abdul Kader M
More information about the BangPypers
mailing list