递归Sybase Select

时间:2016-06-26 01:30:47

标签: sql recursion sybase recursive-query

我有users_entities表,它包含用户,他们的实体及其依赖实体。像这样。

|user | entity | dependant entity|
----------------------------------
| 122 | 746414 |      null       |
| 122 | 746410 |     746414      |
| 122 | 746405 |     746414      |
| 333 | 746403 |     746405      |

所以,用

select entity from users_entities where user = 122

我得到:706414,706410和746405。

122负责的所有实体,但我还必须显示依赖这些实体的所有实体。所以,我还必须显示746403因为它取决于746405。

它是一个树形结构

74614
  |
746405 
  |
746403

我想我必须做一个递归选择,但我无法完成它。可以用一个选择完成吗?或者我必须做一个函数或存储过程?感谢。

修改的 哦,我忘了。他们可以是多层次的家属。

1 个答案:

答案 0 :(得分:0)

你必须自我加入。但是你需要知道最大级别数。如果最大值是5,那么你可以写一个5向自连接。当您使用外连接谓词时,它应该能够处理少于该数量级别的任何内容。 像这样的东西(我没有测试查询,但你会得到这个想法;最多只能完成3个级别,但你可以扩展它):

{{1}}