Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL按用户名从朋友表中获取朋友_Mysql_Sql_Relationship - Fatal编程技术网

Mysql SQL按用户名从朋友表中获取朋友

Mysql SQL按用户名从朋友表中获取朋友,mysql,sql,relationship,Mysql,Sql,Relationship,好的,我被表设计卡住了,我现在无法更改,我需要基于用户名从friends\u relationship表中获取他的所有朋友 我现在所拥有的: select distinct(username) from members m inner join members_friends f on f.id_memb_friend1 = m.id where (f.id_memb_friend1 = 173 or f.id_memb_friend2 = 173) members表包含以下列:id、用户名

好的,我被表设计卡住了,我现在无法更改,我需要基于用户名从friends\u relationship表中获取他的所有朋友

我现在所拥有的:

select distinct(username) from members m
inner join members_friends f on f.id_memb_friend1 = m.id
where (f.id_memb_friend1 = 173 or f.id_memb_friend2 = 173)
members表包含以下列:id、用户名 member\u friends表中有id、id\u memb\u friend1、id\u memb\u friend2列

我发布的查询还将返回id为173的成员的用户名,该成员是所有者,例如他的昵称是极好的。 我想要实现的是使用用户名将所有的朋友聚集在一起,基于我提供的用户名flander=ID173

更新:

我想做到这一点:

输入:用户名=1 操作:获取好友的用户名及其ID 输出:

成员id=5 用户名=约翰

members.id=15 用户名=劳拉

成员id=66 用户名=亚历克斯


等等…

更新以适应评论中表达的新要求。 更新以适应更新问题中表达的新要求

您的问题与是否要基于用户名或用户id进行搜索不一致。虽然您的查询使用id,但我根据澄清的要求使用用户名。我还假设你只想要朋友的用户名。此外,从初始查询中可以看出,您希望查看两个方向上的关系:在friend1上匹配,显示所有friend2;在friend2上匹配,显示所有friend1

有一种方法可以做到这一切:

select mm.id, mm.username
    from members mm
    inner join member_friends f on f.id_memb_friend1 = mm.id
    inner join members m on m.id = f.id_memb_friend2 
    where m.username = 'Splendid'
union distinct
select mm.id, mm.username
    from members mm
    inner join member_friends f on f.id_memb_friend2 = mm.id
    inner join members m on m.id = f.id_memb_friend1
    where m.username = 'Splendid'

选择案例f.id\u memb\u friend1当'173'时,然后选择f.id\u memb\u friend2其他f.id\u memb\u friend1结束为MemberID,m.username来自成员\u friends f.id\u memb\u friend1=m.id或f.id\u memb\u friend2=m.id上的内部加入成员m
如果f.id_memb_friend1=173或f.id_memb_friend2=173

您的问题有点令人困惑。您可以发布什么样的示例输出以及每个列需要来自哪个表吗?我提供了输出。。。感谢您的输入,然后您需要再次加入members表。答案已更新。再次更新以提供朋友的ID,如更新的问题中所述。都很好,只有u缺失=在第二次内部连接处。谢谢,我会再测试一下,然后接受它!哎呀。添加了缺少的=符号。