回答

收藏

SQL获取不是我的朋友的朋友的所有朋友

技术问答 技术问答 213 人阅读 | 0 人回复 | 2023-09-14

我正在研究“可能的朋友”功能。在这里,我需要向不是我的朋友的所有朋友显示所有朋友,也不要发送给我或没有我的待处理请求& D; s1 _0 I; V0 Q
FRIENDSHIPS
5 L/ E1 \( s9 V$ B+ auser_id/ T8 a5 I9 l, ?7 E3 G
friend_id6 {; Q+ d" w: W, c/ @) \4 s7 t
status  (0 = pending, 1 = approved)
. s/ a; d; ]3 L. u4 \$ m0 z% O7 _$ L对于每一次友谊,我都会做两个记录。假设用户1和2成为朋友…我要在表中做一个记录where2 D$ C) S$ e" E' I1 `% \
user_id=1,friend_id=2,再做一个。where user_id=2, friend_id=1``friendships1 R+ E' I7 I4 F
当第一个用户发送请求时,将状态设置为0,而当朋友接受请求时,我将两行都更新为1/ p3 `: }& T* b- V4 q
如何根据朋友的朋友进行建议“可能的朋友”的sql查询?  |- p( ~- [( R9 C& n; ~+ N1 }
                ! v4 @' x! j( j" d  D* W$ _7 }5 p
解决方案:- k6 C- j& N3 G
               
& B' u' t0 t$ Q' I, d- Z
& E. m9 O1 t* a5 A" P& w8 n
7 ]$ w1 p# u' T0 e1 F) u, w                在这里,您…简单加入
, {5 w0 O: p8 }SELECT F2.friend_id
  y7 F  D' S, i/ D; d0 _. iFROM FRIENDSHIPS F
# X8 l' Q" V3 R/ F: {% V% RJOIN FRIENDSHIPS F2 ON F.friend_id = F2.user_id
# z% Z% W2 k/ {# ~+ Z, F0 ]6 }WHERE F2.friend_id NOT IN (SELECT friend_ID FROM FRIENDSHIPS WHERE user_id = @user_id)+ W6 U' r5 F* J* i; q8 l' e3 B
  AND F.user_id = @user_id
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则