如何使用SQL在表中获取隐式相关记录?

时间:2018-12-04 12:31:38

标签: sql oracle implicit

假设我有这样的记录:

|    id   |  equivalent_id  |
+---------+-----------------+
|----11---|--------22-------|
|----22---|--------33-------|
|----33---|--------44-------|
|----44---|--------55-------|
|----55---|--------66-------|

我想在Oracle中编写查询以获取记录之间的隐式关系。例如,如果我在查询的输入中传递11,它应该返回22, 33, 44, 55, 66

由于11-> 2222-> 33,因此我们可以得出11-> 33依此类推

更新

数字可以超出上述范围,例如数字可以在199999999之间,并且记录之间不存在任何数学关系。

1 个答案:

答案 0 :(得分:0)

我将进行分层查询:

SELECT equivalent_id
  FROM <nameyourtable>
START WITH ID=11
CONNECT BY PRIOR equivalent_id=id;

不知道,如果我正确地获得了这个伪代码,但是你得到了图片...