I want to get recipes which belongs to a particular category and having a particular flag. So I need both joins recipe-category and recipe-flag.
Michael Bayer napsal(a): > > 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 -~----------~----~----~----~------~----~------~--~---