我在练习时遇到了问题:
表Friend
:
Friend1 Friend2
表Relationship
:
Friend1 Friend2 GradeOfFriendship
我需要创建一个触发器,我必须在其中获得对称元组,例如:
Luc Mark
Mark Luc
在两个表格中。
如果两个人之间有直接联系,那么GradeOfFriendship = 1
如果一对人之间没有联系,那么GradeOfFriendship = 0
。
在其他情况下,GradeOfFriendship
必须计算为连接这两个人的所有可能路径的最小距离(我们必须将此表视为有向图)
我的问题不是获得对称元组,而是如何计算两个人之间的所有可能路径。例如:
Luc Marc 1
Marc John 1
Luc John 2
我正在使用SQL Server。目前我不知道如何解决这个问题 - 我认为我必须使用一些递归函数,但我不知道如何....
答案 0 :(得分:1)
这是创建递归煎炸网络的一种方法:
#Yoast sitemap
location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ {
rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
rewrite ^/([a-z]+)?-?sitemap\.xsl$ /index.php?xsl=$1 last;
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
## following lines are options. Needed for wordpress-seo addons
rewrite ^/news_sitemap\.xml$ /index.php?sitemap=wpseo_news last;
rewrite ^/locations\.kml$ /index.php?sitemap=wpseo_local_kml last;
rewrite ^/geo_sitemap\.xml$ /index.php?sitemap=wpseo_local last;
rewrite ^/video-sitemap\.xsl$ /index.php?xsl=video last;
access_log off;
}
第一个名为DATA的CTE就在那里,因此不需要将frsh什么两种方式输入到朋友桌中。如果你已经有了这种方式,你可以把它留下来。
第二个称为CTE的CTE是递归的,它从一个人到另一个人获取所有路径。名称以|分隔的路径列当友谊圈出来时,是否可以防止无休止的循环。
最终选择只选择朋友之间的最短路径。
中的示例答案 1 :(得分:0)
这是朋友和成绩之间的外部联接