On Apr 30, 2007, at 8:40 AM, ml wrote:
> Hi! > > I have 2 relations: > - recipes-categories (M:N) > - recipes-flags (M:N) > > I'd like to get something like: > SELECT recipes.title FROM recipes > JOIN _recipes_ctgs_recipes > ON _recipes_ctgs_recipes.id_recipe = recipes.id > JOIN recipes_ctgs > ON _recipes_ctgs_recipes.id_recipes_ctg=recipes_ctgs.id > JOIN _recipes_flgs_recipes > ON _recipes_flgs_recipes.id_recipe = recipes.id > JOIN recipes_flgs > ON _recipes_flgs_recipes.id_recipes_flg=recipes_flgs.id > WHERE recipes_ctgs.title='cat1' AND recipes_flgs.title='flag1' > > when I run > sess.query(Recipe).join("ctgs").join("flgs").select(...) > it fails with > > sqlalchemy.exceptions.SQLError: (ProgrammingError) table name > "_recipes_ctgs_recipes" specified more than once > > where "_recipes_ctgs_recipes" is a secondary table. Full example > attached. well, yeah, youre joining against the same relationship twice. going from "ctgs" to "flgs" makes it essentially a self referential join on "recipes". i dont understand what youre trying to query for there but my intuition tells me theres probably some better way to lay out that query without 5 joins in between. if not, youll have to lay out the self referential part manually using table aliases. (note to SA old schoolers - see why i hesitated so much to add auto- joins across relationships ? every new feature spawns a whole new class of user issues) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---