我正在研究“可能的朋友”功能。在这里,我需要向不是我的朋友的所有朋友显示所有朋友,也不要向我发送或没有我的待处理请求
FRIENDSHIPS
user_id
friend_id
status (0 = pending, 1 = approved)
对于每次友谊,我都会做两个记录。假设用户1和2成为朋友...我要在
where user_id=1,friend_id=2
表中记录一个where user_id=2, friend_id=1
和另一个friendships
。当第一个用户发送请求时,将状态设置为0,而当朋友接受请求时,我将两行都更新为1
我将如何基于朋友的朋友进行建议“可能的朋友”的sql查询?
最佳答案
在这里,您...简单加入
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