当前位置: 首页 > 面试题库 >

如何获得共同朋友的名单

司徒志
2023-03-14
问题内容

嗨,即时通讯,试图找出我如何能得到共同的朋友

我目前在考虑这个问题时遇到问题。

我有一个名为“用户”的表,这是它的外观

id | name
-----------
1   Kenny
2   Jack
3   Jimmy
4   Chris
5   Meg
6   Jake
7   Micheal
8   Dude

我有一张叫做“友谊”的桌子,这就是它的样子

user_a | user_b 
----------------
4         1        
7         5
8         1
2         4
2         1
5         2
1         6
1         7

user_a向user_b发送一个成为朋友的请求,并且…
BAM有朋友。现在,如果我是用户2,并且我转到用户1s的朋友列表,我想看看我们有什么共同点。什么是正确的SQL做到这一点?


问题答案:

假设用户1与用户7不可能两次成为好友(这意味着不能与user_a = 1, user_b=7和排成一行user_a = 7, user_b = 1)。

SELECT IF(user_a = 1 OR user_a = 2, user_b, user_a) friend
FROM friendship
WHERE (user_a = 1 OR user_a = 2) OR (user_b = 1 OR user_b = 2)
GROUP BY 1
HAVING COUNT(*) > 1


 类似资料:
  • 问题内容: 实际上,我有2个表Friends表和users表,我想要达到的目的是通过检查另一个用户的朋友来获取我的共同朋友,并从users表中获取这些共同朋友的数据 表的朋友是这样建立的 然后表格数据看起来像这样 然后假设我是ID为2的用户,那么在该表中我有3个朋友-1、3和4。我要检索的是与用户1相同的朋友,他们也有3个朋友-2、3和4。并从表用户中检索2个共同的共同朋友3和4的数据 问题答案:

  • 问题内容: 我正在研究“可能的朋友”功能。在这里,我需要向不是我的朋友的所有朋友显示所有朋友,也不要发送给我或没有我的待处理请求 对于每一次友谊,我都会做两个记录。假设用户1和2成为朋友…我要在表中做一个记录,再做一个。 当第一个用户发送请求时,将状态设置为0,而当朋友接受请求时,我将两行都更新为1 如何根据朋友的朋友进行建议“可能的朋友”的sql查询? 问题答案: 在这里,您…简单加入

  • 为了了解在朋友关系中使用Neo4J的优势,我在MySQL数据库上创建了一个Persons表(“Persons”,20900个数据集): 和一张关系表(“友谊”,每个人有50到100个朋友): 因此,大约有120万人的关系。 现在我想查看id=1的人的朋友的朋友的朋友的朋友,因此我创建了一个如下查询: 用户ID 1的查询用了大约30秒 在Neo4J中,我为每个人创建了一个节点(20900个节点)和一

  • 问题内容: 我有一个类似于myspace / facebook的社交网络。在我的代码中,您不是一个人的朋友,还是不是一个朋友,因此,我显示了您与之成为朋友的人的所有操作(在此帖子中,我将这些操作单独称为公告帖子,以使其更易于可视化。 因此,您每当有人发布公告时,都会向在那里的任何朋友显示。 在mysql中,您可以通过执行以下操作来获得个人朋友列表, 我想知道像facebook之类的网站如何显示您的

  • 问题内容: 我正在尝试从用户表中提取数据,并且需要“朋友之友”,这些人与所选用户相距两步 但未直接连接到所选用户 我尝试了以下查询: 我不知道如何拉未直接连接到所选用户的用户。我得到了当前用户的朋友的所有朋友,但是我 也 得到了当前用户的直接朋友。 问题答案: 您只需要排除既是直接朋友又是朋友的人。我已经重新排列了表别名,这样(无论如何对我来说)就更清楚了要检索的内容: 它还消除了排除要查询的用户

  • 我正在构建一个应用程序,旨在作为为同一个组织工作的人的目录,我们都有Facebook,所以让我们聚在一起似乎很容易。不过,我有一个问题,在实际部署应用程序之前,我如何获取他们的信息进行测试?我在Facebook Graph Api v2.0上读到- /me/friends返回为空,或者只有使用我的应用程序并注意到它不容易或根本不被允许的朋友。我错了吗? 现在我有: 但我得到了空阵,我能做点什么吗?