我有以下表格:
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'
答案 0 :(得分:1)
尝试将OR括在括号中,如:
def index(request):
foo = 123+456
return render_to_response('forum/index.html', {'foo':foo})
否则,无论其他条件如何,引擎都会为您带来userfriends_friends.user_id = {user_id}的每条记录。
希望这有帮助!