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

共同好友SQL with Join(Mysql)

虞华翰
2023-03-14
问题内容

我有两张桌子

用户表:

id|name

user_relationships

id | user_id | friend_id

并希望获得2个用户的共同朋友的名字。即:

user_relationships
1 | 1 | 3
2 | 2 | 3

users
3| sammy

用户1和2有共同的朋友3。我想在一个查询中得到他的名字“ sammy”。

我怎么做?


问题答案:
SELECT id, name
FROM users
WHERE id IN (
  SELECT friend_id
  FROM user_relationships
  WHERE user_id IN ( 1, 2 )
  GROUP BY friend_id
  HAVING COUNT(friend_id) >= 2
)

或一次连接:

SELECT friend_id, name
FROM user_relationships r
  INNER JOIN users u ON r.friend_id = u.id
WHERE user_id IN ( 1, 2 )
GROUP BY friend_id
HAVING COUNT(friend_id) >= 2


 类似资料:
  • 我在尝试hadoop(Java版本)中的mapreduce程序,从json文件中查找共同的朋友列表。json文件内容具有以下模式: 模式解释如下: friend json选项卡,由相关friends json的数组分隔 因此abc将xyz、def和cxf作为朋友cxf将xyz abc和yyy作为朋友。 综上所述,abc和cxf的共同好友是xyz。 尝试通过创建自定义可写文件来实现相同的使用mapd

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

  • 问题内容: 我有一个MySQL数据库,其中存储了每个用户的数据。 我想为每个用户添加一个朋友列表。我应该为数据库中的每个用户创建一个朋友表还是有更好的方法? 问题答案: 假设所有朋友也都在用户表中,则需要一个朋友表,该表定义了简单的一对多关系-将用户表链接回自身。所以 其中UserIDLink1和UserIDLink2都是Users表上的外键。 例如,如果我有三个用户 并且Joe和Jane是朋友,

  • 问题内容: 嗨,即时通讯,试图找出我如何能得到共同的朋友 我目前在考虑这个问题时遇到问题。 我有一个名为“用户”的表,这是它的外观 我有一张叫做“友谊”的桌子,这就是它的样子 user_a向user_b发送一个成为朋友的请求,并且… BAM有朋友。现在,如果我是用户2,并且我转到用户1s的朋友列表,我想看看我们有什么共同点。什么是正确的SQL做到这一点? 问题答案: 假设用户1与用户7不可能两次成

  • 主要内容:使用传递元素,使用传递属性JavaServer Faces支持HTML5,允许您直接在网页中使用HTML5标记。 它还允许您在HTML5元素中使用JavaServer Faces属性。 JavaServer Faces支持HTML5分为两类: 直通元素 传递属性 HTML5友好的标记功能可通过渲染的页面输出完成对Facelets页面的控制,而不必将该控件传递给组件。 您可以混合和匹配JavaServer Faces和HTM

  • 有没有一种方法可以像这样在liferay中创建/处理友好的URL? ... 其中John Doe是应显示其数据的客户的名称。 更详细一点: 我说的不是为了友好的url而放弃“web”或“group”,而是在第一个“/”之后有一个友好的url。 我们希望以http://server/ClientName其中ClientName解析为客户端的名称。这是一个问题,因为liferay通常希望在第一个“/”