OK, I found a workaround by doing a double inner-join: tb = db[tablename] rowlist = db((tb.author == db.authors.id) & (tb.work == db.works.id)).select()
I'm still confused, though, by the difference between db.tablename and db[tablename]. Why do they act differently in queries?

