Dani Hodovic <danih...@gmail.com> wrote:

> I've been struggling with a query that gets the most recent date as described 
> here: http://stackoverflow.com/a/123481/2966951
> 
> I've been able to produce a SQLAlchemy variant, but it seems to be MUCH 
> slower when executed with MySQL. It also looks slightly differentwith 
> parameters around the inner query. http://pastebin.com/NWEsFtAY


I’m not sure why you’re using subquery() for the SQLAlchemy version when the 
original SQL you’re looking for has no subquery (and the subquery will perform 
*terribly* on MySQL).  Just join to “mytable” as an alias() itself.   

t1 = mytable.alias()
t2 = mytable.alias()


s.query(t1.userid, t1.date).outerjoin(t2, and_(t1.userid == t2.userid, t1.date 
< t2.date)).filter(t2.userid == None)




> 
> Please don't point me to scalar subqueries as I've looked at the 
> documentation and this was the best I could come up with.
> 
> As this query is a part of a larger query I attempted to solve it with 
> text(), but combining ORM code and raw SQL is a pain in the ass. If there is 
> a text solution however, where this query could be joined with another query 
> that would work too.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to