我有一个SQL表,它表示两个帐户之间的关系,如下所示:
+---+---+
| a | b |
+---+---+
| 1 | 2 |
| 2 | 3 |
| 1 | 4 |
| 3 | 4 |
| 4 | 1 |
+---+---+
列a
和b
是关系的两侧,因此(i
,j
)代表帐户i
和{之间的双向关系{1}}。该表的前提条件如下:
j
永远不会等于a
,即b
= / = a
b
和a
是主键。例如:
b
话虽如此,我正在实现一种关系可以传递的功能,即,如果存在一个关系(1、2)和另一个关系(2、3),那么必须存在一个隐式关系(1、3)。
我试图找到一种无需修改架构的方法。我可能可以对多个SQL查询进行编码,但我认为这样做效率不高,所以我正在寻找一种方法,仅使用一个查询允许我为用户1提供所有帐户相关的查询给他们。
例如,在第一个示例中,对于帐户1,我希望结果为[2,3,4]。关于如何实现此目标的任何想法?