For starters, look closely.

db(db.family_members.user_id == auth.user_id and 
db.family_members.connected_to==db.auth_user.id).select(db.family_members.connected_to,
 
db.auth_user.last_name, db.auth_user.first_name)


Also read the text here 
http://web2py.com/books/default/chapter/29/06#Logical-operators




On Friday, March 29, 2013 7:34:55 AM UTC-4, Dragan Matic wrote:
>
> I have a table that shows family connections for users (I need one way 
> connections) defined as: 
>
> db.define_table('family_members', 
>     Field('user_id', 'integer'), 
>     Field('connected_to', 'integer'))
>
> I need to read and to show all users that are connected to a logged user, 
> basically an inner join between auth_user and family_members table. This 
> select is giving me the following sql query:
>
> family_members_set = db(db.family_members.user_id == auth.user_id and db.
> family_members.connected_to==db.auth_user.id).select(db.family_members.
> connected_to, db.auth_user.last_name, db.auth_user.first_name)
>
> SELECT family_members.connected_to, auth_user.last_name, auth_user.first_name 
>
> FROM auth_user, family_members 
> WHERE (family_members.connected_to = auth_user.id);
>
> According to documentation I think it should have created this query:
>
> SELECT family_members.connected_to, auth_user.last_name, auth_user.first_name 
>
> FROM auth_user, family_members 
> WHERE (family_members.connected_to = auth_user.id and family_members.
> user_id=2)
>
>
> Obviously it is ignoring that I want to select only rows for current_user. 
>
> When I explicitly say it to use join, it generates the correct sql:
>
> family_members_set = db(auth.user_id==db.family_members.user_id).select(db
> .family_members.connected_to, db.auth_user.last_name, db.auth_user.
> first_name, 
>         join=db.family_members.on(db.family_members.connected_to==db.
> auth_user.id))
>
> SELECT family_members.connected_to, auth_user.last_name, auth_user.first_name 
> FROM auth_user JOIN family_members ON (family_members.connected_to =auth_user
> .id) WHERE (family_members.user_id = 2);
>
> What am I doing wrong in the first query?
>
>
>

-- 

--- 
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.


Reply via email to