Anthony, Thanks for answering so quickly. I did mean board and not board_id
My question is very basic. I know that the article table has an Id column that is really the board reference, but when I look at the result of the query and unification of: board_ids = set(map(lambda a: a.board, articles)) I get a set of references, how do I use that set in another query to get all the boards? also, just to be sure, running this lambda expression does not hit the db to fetch the boards, right? I can't use join b/c I'm running on GAE. On Wednesday, March 21, 2012 5:22:50 PM UTC-4, Anthony wrote: > > I have two db tables: >> >> board (name, created_on) >> article(board, name, title) >> >> currently, in my html I do a naive loop {{for article in articles}} {{= >> article.board.name}} {{pass}} >> >> I would like to change it and do something like: >> articles = db.select.all....... >> board_ids = set(map(lambda a: a.board_id, articles)) >> > > Instead of a.board_id, do you mean a.board (I don't see a "board_id" field > listed in your article table definition)? Also, is db.article.board a > reference field to the db.board table? In that case, that means it is > already storing the id of the referenced record in the db.board table > (that's what reference fields store), so you don't need to retrieve it > separately. > > Anyway, if you need the db.board.name value for all the records you are > selecting from the db.article table, you should probably just do a join so > you can get everything in a single query -- see > http://web2py.com/books/default/chapter/29/6#Inner-joins. > > Anthony > >