I think you want (db.users_tags.user != db.auth_user.id)
instead of (db.users_tags.user != auth.user.id On Apr 14, 12:05 pm, Jason Brower <encomp...@gmail.com> wrote: > On 04/14/2011 08:46 AM, ron_m wrote:> The _select is a nested select - the > one in the second half of the > > WHERE clause that Christian wrote out for the SQL equivalent. > > > But the _select needs to return exactly one column, try changing > > _select() to _select(db.user_tags.tag) > > > There is some discussion in the manual under the belongs topic > > > Ron > > I see a bit better now, and it kind of works. > {'users_tags': {'user': 1}, '_extra': {'COUNT(users_tags.id)': 1}} > {'users_tags': {'user': 3}, '_extra': {'COUNT(users_tags.id)': 2}} > This represents one user having a relation on tags between two users, > very cool, but I want the users information, and doing a query on each > user is the inefficient way to do it right? I should join them, and I > know how to do that, but this one, I have no idea. > > count = db.users_tags.id.count() > > query = db((db.users_tags.user != auth.user.id)& #\/-- isn't > that the join? > > > (db.users_tags.tag.belongs(db(db.users_tags.user==auth.user.id)._select(db. > users_tags.tag)))) > > #/\--- Right > there? > > rows = query.select(db.users_tags.user, > > count, > > groupby=db.users_tags.user, > > orderby=count) > > for row in rows: > > print row.as_dict() > > Best Regards, > Jason