Sql得到了不是我朋友的朋友的所有朋友

Pan*_*eek 0 mysql sql

我正在研究"可能的朋友"功能.我需要向所有不是我朋友的朋友的朋友展示,也不要发送给我或者没有我的待处理请求

FRIENDSHIPS
user_id
friend_id
status  (0 = pending, 1 = approved) 
Run Code Online (Sandbox Code Playgroud)

对于每个友谊我都会做两个记录.说用户1和2成为朋友......我会做好记录where user_id=1,friend_id=2,另外where user_id=2, friend_id=1friendships表中.

当第一个用户发送请求时,将状态设置为0,当朋友接受请求时,我会用1更新两个行

我如何根据朋友的朋友制作一个建议"可能的朋友"的SQL查询?

Hog*_*gan 7

在这里你...简单的加入

SELECT F2.friend_id
FROM FRIENDSHIPS F
JOIN FRIENDSHIPS F2 ON F.friend_id = F2.user_id
WHERE F2.friend_id NOT IN (SELECT friend_ID FROM FRIENDSHIPS WHERE user_id = @user_id)
  AND F.user_id = @user_id
Run Code Online (Sandbox Code Playgroud)