![](/img/trans.png)
[英]Using Entity Framework queries to get all entries on a table related to other 2 tables
[英]SQL Finding all related entries
有了用户表,任何用户都可以与另一个用户建立友谊。 所以,
UserTable
-----------
User1
User2
User3
FriendshipTable
-----------
User1, User3
User2, User5
User3, User5
User5, User9
第1部分:我正在寻找一种方法来获取完整的朋友,朋友的朋友等。例如,User1将返回:User1,User5,User2,User9
第2部分:如果我能得到最大的人员网络的规模,这将是有用的,但不是必需的
或者,是否存在更好的方法来存储用户之间的连接,从而使提取所需的信息变得更加容易? 就像在建立友谊时建立和合并一系列的友谊团体一样?
我在这里找到了一些类似的帖子,但似乎都没有人跟随网络深入到第一层次。
我想那里有解决方案,但我什至不知道要搜索什么。
CTE是解决问题的方法(但是,如果要在朋友之间建立大量的隔离度,则需要谨慎使用MAXRECURSION)。 在您的情况下,UserTable实际上是不相关的。 您只关心关系表(FriendshipTable)。
CREATE TABLE #UserFriendship (User1 VARCHAR(20), User2 VARCHAR(20))
INSERT #UserFriendship VALUES ('A', 'B')
INSERT #UserFriendship VALUES ('B', 'C')
;WITH friends AS
(
SELECT User1, User2
FROM #UserFriendship
UNION ALL
SELECT friends.User1, child.User2
FROM friends
JOIN #UserFriendship child ON
friends.User2 = child.User1
)
SELECT * FROM friends
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.