假设我有下表给出了oldID和newID之间的关系,比如当项目的ID被更改时。
+-------+-------+
| oldID | newID |
|-------|-------|
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 7 | 9 |
+-------+-------+
我需要进行三种类型的查询:
所以第一个应该是:
(1, 2), (2, 3), (3, 4), (4, 5)
(7, 9)
在第二个例子中,假设我给出输入3,输出应为:
(3, 4), (4, 5)
第三个示例应为同一输入输出以下内容:
(1, 2), (2, 3)
编写三个SQL查询的最有效方法是什么(以可移植的方式)?
编辑:
我需要的结果如下:
查询1
chainID | chainIndex | ID
-------+------------+----
1 1 1
1 2 2
1 3 3
1 4 4
1 5 5
2 1 7
2 2 9
查询2:输入3
itemID
______
3
4
5
查询3:输入3
itemID
______
3
2
1
我对2和3更感兴趣,因为我可以保留一个单独的表,其中包含每个链的头部(第一个元素)的ID,并通过2实现1.保证每个ID最多只有一个子节点和父节点,我知道每个链的头部。