>
> for entity in db(db.table2.id > 0).select():
>
retVal += entity.table1.name
>
No, web2py does not retrieve entity.table1.name when the first line above
is executed. Rather, it does a separate select when the second line is
executed. entity.table1 is a DAL Reference object -- when you access one of
its attbibutes (i.e., the name of a field in the referenced table), it does
a database select to get the associated value. So, there are no extra
queries with the initial select, but if you run that for loop, you will get
an extra query for each iteration. This is mentioned in the book section on
recursive
selects <http://web2py.com/books/default/chapter/29/06#Recursive-selects>,
where it is recommended to use a join rather than doing recursive selects
over a large number of records (on GAE you couldn't do a join, but you
could use .belongs() to minimize the number of queries).
Anthony
--
---
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.