首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >优化查询以在Facebook中找到共同的朋友

优化查询以在Facebook中找到共同的朋友
EN

Stack Overflow用户
提问于 2019-05-19 08:17:34
回答 1查看 636关注 0票数 0

假设一个Facebook好友的表看起来像这样- SQL,那么您如何编写一个userId | friendId查询来查找两个好友之间的共同好友呢?我有下面的代码,可以为两个朋友A和B工作。然而,我觉得它还不够优化,我希望我可以用joins来做同样的查询。我感到困惑的两个领域:

  1. 根据好友请求的发起人,特定的用户Id可以位于这两列中的任意一列中。如果A向B发送请求,userId将是A,而friendId将是B。下面的查询处理了这种情况,但是您如何对JOIN执行相同的操作?
  2. FB如何推荐添加某人为好友?这在查询中会是什么样子?

在Stack Overflow/互联网上有多个类似的问题,但似乎没有一个是100%准确的!

我正在寻找一个MS SQL服务器查询,但任何SQL语言应该可以工作。

代码语言:javascript
复制
SELECT *
FROM (
SELECT CASE WHEN userId = 'A' THEN friendId ELSE userId END AS mutualFriends
FROM friendsTable 
WHERE userId = 'A' OR friendId = 'A'
UNION
SELECT CASE WHEN userId = 'B' THEN friendId ELSE userId END AS mutualFriends
FROM friendsTable 
WHERE userId = 'B' OR friendId = 'B'
) A
WHERE mututalFriends NOT IN ('A','B')
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56203823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档