【问题标题】:How to get list of Mutual friends,Following and Followers如何获取共同好友、关注者和关注者列表
【发布时间】:2014-02-01 13:24:20
【问题描述】:

我在这里阅读了很多关于共同朋友和追随者的问题,但我无法解决我的问题,我有两张这样的表格。

  • 用户表(UID,名称)
  • Relation_table(RID、UID、UIDF)

例如在 user_table 中有 4 个用户

UID | Name
------------------
1   |  Kim Tessman
2   |  Nella Ohler
3   |  Adria Larose
4   |  Huey Errico

而Relation_table有这些数据

RID | UID | UIDF
------------------
1   | 1   | 2
2   | 2   | 1
3   | 1   | 4
4   | 4   | 3
5   | 4   | 1

我的问题是:

  1. 如何获取共同好友列表?

  2. 如何获取关注列表?

  3. 如何获取关注者列表?

请谁能解决这个问题谢谢:)

【问题讨论】:

    标签: asp.net sql sql-server database


    【解决方案1】:

    我猜测 Relation_Table 中的 UID 列是用户,而 UIDF 是他们关注的人。这是查找某人正在关注的人的 SQL 查询。被关注的人是同一个查询,你只需关注另一个名称列或切换列顺序。

    这是一个谁关注谁的列表。也是被关注者的名单。

    SELECT     FollowingUser.UID as FollowingUserID, FollowingUser.Name,  BeingFollowed.UID AS BeingFollowedID, BeingFollowed.Name AS BeingFollowedName
    FROM         User_table AS FollowingUser INNER JOIN
                      Relation_Table AS r ON FollowingUser.UID = r.uid INNER JOIN
                      User_table AS BeingFollowed ON r.uidf = BeingFollowed.UID
    

    这个查询给了你共同朋友的列表——但它给出了关系的倒数。如果这很重要,请将其添加到末尾where FollowingUser.UID > BeingFollowed.UID

    SELECT     FollowingUser.UID AS FollowingUserID, FollowingUser.Name, BeingFollowed.UID AS BeingFollowedID, BeingFollowed.Name AS BeingFollowedName
    FROM         User_table AS FollowingUser INNER JOIN
                      Relation_Table AS r ON FollowingUser.UID = r.uid INNER JOIN
                      Relation_Table AS r1 ON r.uid = r1.uidf AND r.uidf = r1.uid INNER    JOIN
                      User_table AS BeingFollowed ON r1.uid = BeingFollowed.UID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 2015-06-20
      • 2013-02-02
      • 1970-01-01
      • 2019-07-11
      • 2014-01-06
      相关资源
      最近更新 更多