Kalium wrote: > > Hi, > Just wondering if there is an easy way to determine what tables are > joined in a query? > > I'm doing something like this > > query = session.query(System, dynamic_obj).select_from(self.j) > > Where dynamic_obj could be any mapped object and self.j represents a > join produced by the sqlalchemy.schema.Table.join() function. I'd like > to know if the table represented by dynamic_obj is already in the > self.j > > I could of course do this programmatically outside of sqla, but it > would be nice if sqla could tell me this.
here's how to do it like a pro from sqlalchemy.sql import visitors t1 = set() visitors.traverse( object_mapper(dynamic_obj).mapped_table, {}, {'table':t1.add} ) t2 = set() visitors.traverse(self.j, {}, {'table':t2.add}) tables_that_are_in_both = t1.intersection(t2) there's also a function sqlalchemy.sql.util.find_tables(expr) that does the "visitors.traverse" thing for you. > > Cheers > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---