从SQL db中选择存储图形结构的两个顶点的边

时间:2015-11-12 18:39:48

标签: sql graph sqlite

我有两个表来存储图表数据。

顶点表:

+----+---+---+
| id | x | y |
+----+---+---+

边缘表(多对多关系):

+---------+-------+
| from_id | to_id |
+---------+-------+

我想选择具有相应顶点的所有边,如下所示:

+----+----+----+----+
| x1 | y1 | x2 | y2 |
+----+----+----+----+

其中x1和y1是源顶点的坐标,x2和y2是目标顶点的坐标。

相应的SQL查询是什么?

1 个答案:

答案 0 :(得分:1)

SELECT v_from.x x1, 
       v_from.y y1,
       v_to.x   x2,
       v_to.y   y2
FROM edge AS e
JOIN vertex AS v_from
  ON e.from_id = v_from.id
JOIN vertex AS v_to
  ON e.to_id = v_to.id