繁体   English   中英

互友Mysql查询

[英]Mutual Friends Mysql Query

在为我的网站创建共同的朋友代码时,我陷入了困境。 我在这里阅读了一些帖子,但没有帮助。

这是我的mysql查询:

select *
from friend_list
where uid='7'
   and status=1
   and friend_id !='3'
union
select *
from friend_list
where uid='3'
   and status=1
   and friend_id !='7' 

这将显示所有登录用户的朋友和我访问的个人资料的朋友。 输出是这个----

  id    uid     friend_id      status
  36    7         4              1
  39    7         5              1
  40    7         8              1
  1     3         4              1

从这个表我只需要freind_id 4,因为这是相互的。

SELECT *
FROM friend_list AS f
INNER JOIN friend_list AS mf ON f.friend_id = mf.friend_id
WHERE f.uid = 7
   AND f.status = 1
   AND mf.uid = 3
   AND mf.status = 1

我刚刚开始学习MySQL,并且已经解决了这个问题。

personID    friendID
6           10
6           2
6           3
8           1
8           2
8           3

/*  query for friends   */
select f.personID, p.personID, firstName, lastName
from person p
inner join friends f on f.friendID = p.personID
where f.personID = 6;

/*  query for common friends    */
select f1.personID 'personID 1', f2.personID 'personID 2', f1.friendID 'common friend'
from person p
inner join friends f1 on f1.friendID = p.personID
inner join friends f2 on f2.friendID = p.personID
where f1.personID = 6 and f2.personID = 8 and f1.friendID = f2.friendID;

结果:

personID 1    personID 2    common friend
6             8             2
6             8             3

尽管这不是代码的直接答案,但您可以将我的代码作为源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM