我需要一些帮助来解决查询
我有两张这样的表:
Source Destination
------ -------------
1 2
2 3
3 4
3 5
当用户输入source = 1
和destinaton = 5
时,它应填充以下内容
1 2
2 3
3 5
答案 0 :(得分:1)
这可能对您有所帮助
WITH CTE_SD
AS
( SELECT [Source],[Destination] FROM SD WHERE [Destination] = 5
UNION ALL
SELECT SD.[Source],SD.[Destination]
FROM SD
INNER JOIN CTE_SD ON SD.[Destination] = CTE_SD.[Source]
)
SELECT * FROM CTE_SD ORDER BY [Source]
... WHERE [Destination] = 5 -
您可以在此使用参数或变量。
您还可以在CTE中使用其他逻辑
答案 1 :(得分:0)
听起来很像七度分离问题,取自Stack Overflow中回答的另一篇文章,我建议你看看下面的解决方案:
祝你好运!