【问题标题】:Get Possible path between two nodes in SQL Server获取 SQL Server 中两个节点之间的可能路径
【发布时间】:2016-03-16 21:02:22
【问题描述】:

我需要一些帮助来解决查询

我有两张这样的表:

Source       Destination
------      -------------
  1              2
  2              3
  3              4
  3              5

当用户输入source = 1destinaton = 5 时,它应该填充以下内容

1        2
2        3
3        5

【问题讨论】:

  • 不幸的是,我无法远程理解您正在尝试完成什么或您期望什么(也不是您期望从 SQL 中获得的行为)。您期望一个或两个结果表吗?显示两个表中除了第三行之外的所有内容的原因是什么?请详细说明。

标签: sql-server


【解决方案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 中使用您的附加逻辑

【讨论】:

  • 我无法弄清楚如何修改此代码以使用 [Source] 和 [Destination] 作为参数。我该怎么做?
【解决方案2】:

听起来很像七度分离问题,取自 Stack Overflow 中的另一篇回答,我建议您查看以下解决方案:

Degrees of Separation Query

祝你好运!

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多