我有一个包含用户Id和他的朋友Id的表,比如:

----------------------------------------------
UserFriendsId    |    UserId    |    FriendId
----------------------------------------------
     1                  1              2
----------------------------------------------
     2                  1              3
----------------------------------------------
     3                  2              1
----------------------------------------------
     4                  2              3
----------------------------------------------

此表数据显示,User-1和User-2是朋友,它们也与User-3有联系。
现在我想在UserId 1和UserId 2中找到共同的朋友,例如:
在句子中我的疑问是:用户1和用户2有一个共同的朋友FriendId 3。
为此,我对内部连接使用了SQL查询:
SELECT t1.*
  FROM userfriends t1
 INNER JOIN userfriends t2
    ON t1.FriendId = t2.FriendId
 WHERE t1.UserId = 2

但不返回所需结果。。

最佳答案

select *
  from MyTable as A
 inner join MyTable as B
    on     (A.UserID = 1 and B.UserID = 2)
       and (A.FriendID = B.FriendID)

编辑

10-08 04:43