Alexander Kotelnikov wrote: > > Assuming I have a table > CREATE TABLE seq (i int auto_increment primary key, used bool default > false); > > And want to query an mapped object from it which corresponds a query > > SELECT i,used FROM seq WHERE NOT used AND i+1 IN (SELECT i FROM seq > WHERE AND used) > or (more or less equivalent) > SELECT seq.i,seq.used FROM seq JOIN seq AS seq1 WHERE seq.i+1==seq1.i > AND NOT seq.used AND NOT seq1.used > (retrieve first of n, here - 2, not used numbers in a sequence) > > Number of subqueries/JOINs might be a runtime parameter. > > Would be nice to know if it is possible, and if it is - how?
you can map to any select(), but since the statement here is a runtime thing just map to the "seq" table normally and use Query as needed to construct the joins and filter criterion. If you're looking to automate adding N joins, just build a function that calls query.join() the appropriate number of times. For an example of a completely different use case where a self-referential query.join() is being called an arbitrary number of times, see the elementtree/optimized_al.py example in the distribution. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---