SQL加入postgres

时间:2016-05-07 20:35:11

标签: sql postgresql join

我有以下表格:

user_friends
>id
>user_id
>friend_id
>status

user_fields
>id
>user_id
>party_status

user_friends是一个列出我是谁的朋友的表。所以,我可以请求友谊,我会在user_id列中输入我的ID,或者我可能已经是其他人的朋友,我的id将在friend_id列中。

我想写一个查询,它会返回我所有的朋友,他们的party_status是' READY'在user_fields表中,我是他的朋友。

这是我到目前为止所得到的,但它并没有让我得到我想要的东西,而且我正在艰难地绕过它。任何帮助表示赞赏。我正在使用postgres

SELECT * FROM userfriends_friends
        INNER JOIN userapp_userfields ON    (userfriends_friends.friend_id=userapp_userfields.user_id)
        AND (userfriends_friends.friend_id=userapp_userfields.user_id)
        WHERE userfriends_friends.user_id = {user_id}
        OR userfriends_friends.friend_id = {user_id}
        AND userapp_userfields.party_status = 'READY'
        AND userfriends_friends.status = 'APPROVED'

1 个答案:

答案 0 :(得分:1)

尝试将OR括在括号中,如:

def index(request):
    foo = 123+456
    return render_to_response('forum/index.html', {'foo':foo})

否则,无论其他条件如何,引擎都会为您带来userfriends_friends.user_id = {user_id}的每条记录。

希望这有帮助!