On Apr 13, 2011, at 5:52 AM, Lars wrote: > Hi Michael, > > I am trying to figure out the two suggestions you did, and not getting > very far. Some basic questions: > > - if A, B, C are mapped classes, can you do A.join(B, A.id == > B.id).join(C, B.id == C.id).join( .... ?
usually if you want to use join() you'd deal with tables, like table_a.join(table_b, ...).join(...). though the orm.join() function will receive classes directly, its in http://www.sqlalchemy.org/docs/orm/tutorial.html#querying-with-joins > - Would using join in such a way make access to mapped attributes in > one of the joined tables excessively slow? joins are slower than straight single table selects especially in MySQL, if thats the question > - What is the difference between using association_proxy and > relationship(... secondary = .., ..., secondaryjoin = ...)? three concepts. one is many-to-many: http://www.sqlalchemy.org/docs/orm/relationships.html#many-to-many next is the association pattern, a many to many where extra data is linked with each association: http://www.sqlalchemy.org/docs/orm/relationships.html#association-object next is association proxy, when you've worked with an association for awhile and are tired of saying parent.association.child and want to just skip the ".association" part in the usual case > - in the example in poly_assoc_generic.py, is there a way to define an > attribute on address that returns a list with both "orders" and > "users" with that address (and be able to append that list) ? these collections load from entirely different tables. Usually you'd need to do it manually: @property def users_and_orders(self): return self.users + self.orders or to simulate a polymorphic union, do object_session(self).query(....).union(object_session(self).query(....)) etc. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected]. 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.
