Thanks, that worked. On Jul 7, 11:57 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > On Jul 7, 2011, at 2:16 PM, Bryan wrote: > > > > > I'm having trouble telling an orm query which table is the "main" > > table when I > > only use a single column from the main table and it is wrapped up in > > an SQL > > function. It's almost like SqlAlchemy can't see that I am using a > > column from > > that table because it is inside of a function:: > > > # -- Schema ------------------- > > # > > # Labor > > # ===== > > # id > > # hours > > # createdBy (user ref) > > # editedBy (user ref) > > # > > # > > # User > > # ==== > > # id > > # username > > # ----------------------------- > > > # -- Code ------------------- > > CREATED_BY = aliased(User, name='createdBy') > > EDITED_BY = aliased(User, name='editedBy') > > > q = query(CREATED_BY.username, func.sum(Labor.hours)) > > q = q.join((CREATED_BY, Labor.createdBy==CREATED_BY.id)) > > q.all() > > > This is producing a query like this:: > > > SELECT > > user_1.username, sum(labor.st) > > FROM > > user AS user_1 > > INNER JOIN user AS user_1 ON labor.createdBy = user_1.id > > > Which gives me a OperationalError "1066, "Not unique table/alias: > > 'user_1'". > > > I would expect this:: > > > SELECT > > createdBy.username, sum(labor.st) > > FROM > > labor > > INNER JOIN user AS createdBy ON labor.createdBy = createdBy.id > > > As soon as I add a column from the Labor table to the query, and it is > > not in a > > function, the query works. For example, this works:: > > > q = query(CREATED_BY.username, Labor.id, func.sum(Labor.hours)) > > > Mysql 5 > > SqlAlchemy 0.5.2 > > if you could upgrade to 0.6 or 0.7, you would say > query(created_by).select_from(Labor).join(created_by, <onclause>) > > else if stuck with 0.5 you need to use > > from sqlalchemy.orm import join > > query(created_by).select_from(join(Labor, created_by, > <onclause>).join(<whatever else needs to be joined>)) > > i.e. the whole JOIN needs to be in select_from
-- 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.