【问题标题】: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
我的问题是:
如何获取共同好友列表?
如何获取关注列表?
如何获取关注者列表?
请谁能解决这个问题谢谢:)
【问题讨论】:
标签:
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