只有当用户有两种关系时才选择sql

时间:2013-11-04 17:51:41

标签: mysql sql

我正在这里进行所有测试:http://www.sqlfiddle.com/#!2/85d6d/1

我试过了:

SELECT f1.asked_user_id AS friend_id
FROM friends AS f1 JOIN friends AS f2
    USING (asked_user_id)
WHERE f1.asker_user_id = 3 AND f2.asker_user_id = 3 
    AND f1.status = 1 AND f2.status = 1

但结果并不令人满意,返回的friend_id并不总是双向的。

我:(3,2,1) 和(2,3,0)

因此user_id 3没有双向好友,因此不应显示任何结果。但是我的查询仍然会出现。

通过双向友谊我的意思是:

(1,2,1) (2,1,1) 在哪里:提问者,问,状态

1 个答案:

答案 0 :(得分:1)

SELECT f1.asked_user_id AS friend_id
FROM friends AS f1 JOIN friends AS f2
    ON f1.asked_user_id = f2.asker_user_id
   AND f1.asker_user_id = f2.asked_user_id
WHERE f1.status = 1 AND f2.status = 1

FIDDLE