yes and no. It is not efficient and it is not an alternative to joins. Yes it is convenient and a little smart than you think. For example:
*row.product* is an Reference object (extends integer) and there is no nested query. *row.product.name * now this does a nested query and remembers it *row.product.vendor* No more query because it remembers the previous query. *row.product.vendor.name * Here you have another nested query *row.product.categories* this is a list of references so there is no nested query only a lost of reference objects. The query happens when you do *row.product.categories[0].name* etc. On Sunday, 13 December 2015 07:09:23 UTC-6, Robin Manoli wrote: > > Is there a way to select a set of fields and corresponding list:reference > fields in one query? > > I have these three tables: > > > > > > > > > > > > > > > *db.define_table( 'product', Field( 'name' ), Field( 'categories', > 'list:reference category' ), Field( 'vendor', 'reference vendor' > ), )db.define_table( 'vendor', Field( 'name' ),)db.define_table( > 'category', Field( 'name' ),)* > Now I can select all products with correspoding vendors in one query such > as: > > *query = (db.product.id <http://db.product.id> > 0) & (db.**product.**vendor > == db.* > > > *vendor.id)rows = db( query ).select()*I access product as *row.product* > and vendor as *row.vendor* > I can also access *row.product.categories*, but doesn't that mean each > product creates a unique mysql query? How to make it efficient? > > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.