互友Mysql查询

互友Mysql查询,mysql,sql,Mysql,Sql,我在为我的网站编写共同的朋友代码时陷入了困境。我读过这里的一些帖子,但没用 下面是我的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' 这将显示登录用户的所有好友以及我访问的配置文件的好友。 输出是这

我在为我的网站编写共同的朋友代码时陷入了困境。我读过这里的一些帖子,但没用

下面是我的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' 
这将显示登录用户的所有好友以及我访问的配置文件的好友。 输出是这个吗----


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

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

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
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

虽然这不是对您的代码的直接回答,但您可以将我的代码作为源代码。

我刚刚开始学习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

虽然这不是对您的代码的直接回答,但您可以将我的代码作为源代码。

您可能只希望
选择f.friend\u id
将数据拉入您的应用程序,而不是
选择*
。您好,谢谢您的帮助。你的询问对我帮助很大。谢谢,它很有魅力。我从5个小时就一直在做这件事。谢谢,您可能只需要
SELECT f.friend\u id
将数据拉入应用程序,而不是
SELECT*
。您好,谢谢您的帮助。你的询问对我帮助很大。谢谢,它很有魅力。我从5个小时就一直在做这件事。非常感谢。