首页 / C# / c#-在第n个连接度内选择所有用户
c#-在第n个连接度内选择所有用户
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-在第n个连接度内选择所有用户,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1267字,纯文字阅读大概需要2分钟。
内容图文
该表由列user1,user2,connectionStrength组成,示例记录如下:
A,B,0.2
A,C,0.5
A,G,0.1
B,C,0.8
W,Q,0.4
G,Q,0.5
我想为所选用户检索在定义的连接度内的所有用户,然后绘制连接图.但是,问题是如何从表中选择满足条件的所有记录.例如,如果选择了用户A,并且度数设置为2,则应从示例中选择以下记录:
A,B,0.2
A,C,0.5
A,G,0.1
B,C,0.8
G,Q,0.5
上面的示例是假设的.实际上,我正在处理的数据库中有超过200M个连接,当前我使用C#和Microsoft SQL Server 2008进行分析.
有谁知道如何编写一个函数(字符串GetQuery(字符串selectedUser,int degreeOfConnection))来组成一个查询,该查询返回满足条件(所选用户的连接程度)的所有记录?
编辑#1
我尝试通过以下方式执行递归查询来获取连接:
WITH user_connections(user1, user2, link_strength, Level)
AS
(
SELECT user1, user2, link_strength, 0 AS Level FROM [dbo].[monthly_connections] AS mc WHERE user1 = '1ADF1126F26B4AD4441A3C552FCE04A4F7A79760'
UNION ALL
SELECT mc.user1, mc.user2, mc.link_strength, Level + 1 FROM [dbo].[monthly_connections] AS mc INNER JOIN user_connections AS uc ON uc.user2 = mc.user1
)
SELECT user1, user2, link_strength FROM user_connections OPTION(MAXRECURSION 1)
到目前为止,该查询已经执行了40多分钟,因此,如果有人可以检查该语句是否正确构成,我将非常感激.
谢谢!
解决方法:
SQL 2005及更高版本允许您使用Common Table Expressions创建递归查询.文档中的示例应足以帮助您入门.
内容总结
以上是互联网集市为您收集整理的c#-在第n个连接度内选择所有用户全部内容,希望文章能够帮你解决c#-在第n个连接度内选择所有用户所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。