Michael Bayer wrote: > On Apr 5, 2007, at 6:27 PM, HD Mail wrote: > > >> King Simon-NFHD78 wrote: >> >>> Huy wrote: >>> >>> >>>> Hi, >>>> >>>> When using the generative limit() offset() or order_by calls >>>> on mapper >>>> query, the sql generated looks weird. >>>> >>>> I get something like >>>> >>>> select table1.* table2.* >>>> from (select table1a.id from table1a limit 20 offset 0 order by >>>> table1.col) as table_row, table1 join table2 (on...) >>>> .... >>>> >>>> Notice how the limit and offset is in that subselect ? Is >>>> this by design. >>>> The query results are not what I would expect either because the >>>> subselect doesn't join to the main table (table1). >>>> >>>> Hope what I"m describing makes sense. >>>> >>>> >>>> >>> If the outer query involved eager loading of many-to-many properties, >>> the number of rows returned would not necessarily be the same as the >>> number of entities being loaded. By doing the limit and offset in the >>> inner query, it guarantees that you will get exactly the expected >>> number >>> of entities. >>> >>> At least, that's my understanding. Hope that helps >>> >> Hi Simon, >> >> That makes perfect sense, but why is the inner query joined not joined >> with the main table from the outer query ? because this is not done, I >> get a cartesian product between the inner result with the outer >> result. >> >> > > the query wrapping i see in your example should only occur for eager > loaded properties, so that the actual result you want, represented by > the full rowset of the inner query, gets joined to the eager loaded > properties you want. everything you specify with your Query should > be in the inner query. > Hi Michael,
Sorry I was looking at this thing wrong ( I didn't see the join in the where clause) please ignore the offset/limit question. Regards, Huy --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---