Mysql sql-在两个图点之间查找成本

Mysql sql-在两个图点之间查找成本,mysql,sql,graph,Mysql,Sql,Graph,我有一张表,可以存储相邻两个火车站之间的时间 +------+------+------+ | s1id | s2id | tbtw | +------+------+------+ | 234 | 235 | 20 | | 235 | 133 | 8 | | 133 | 108 | 15 | | 234 | 236 | 10 | | 108 | 500 | 2 | | 235 | 108 | 21 | +------+------+-----

我有一张表,可以存储相邻两个火车站之间的时间

+------+------+------+
| s1id | s2id | tbtw |
+------+------+------+
| 234  | 235  | 20   |
| 235  | 133  | 8    |
| 133  | 108  | 15   |
| 234  | 236  | 10   |
| 108  | 500  | 2    |
| 235  | 108  | 21   |
+------+------+------+
我想找到任意两点之间的时间,如果它们可以像查找站234到500之间的时间一样连接(234->235->108->500)。我知道这就像一张图表。我试图用t2.s1id=t1.s2id来计算累积距离,如下所示

select t1.* SUM(t2.tbtw) as sum
from t t1
join t t2 on t1.s2id = t2.s1id
group by t1.id, t1.tbtw
但这并没有给我累积的时间,或者没有正确地链接到节点

select t1.*
   (select sum(tbtw)
    from t t2
    where t2.s1id = t1.s2.id
   ) as sum
from t t1;
我可以用编程语言轻松地完成这项工作,但在sql中,它确实令人困惑。我必须使用程序吗?我不能在简单的sql语句中执行吗?简单sql语句中首选该解决方案,但其他解决方案也可以。请帮助我。

请参阅文章:


我想这是很有帮助的

谢谢,正是我想要记住的,该站点上的很多示例都实现了CTE,MySQL不支持CTE。您必须重构其中的一些设计,以使用内联视图或类似的东西。