中模拟connect-by
我想弄清楚如何在MS Access DB中存储分层类型信息,以便查询更快。用例示例可能更有意义。
- 我有一个有两个字段的表
- 层次
- 层次结构是一个X #级别的文件夹结构:
-
abcd
-
abcde
-
abcdfg
-
abh
-
abij
- 你懂的
-
- 表将被填充300,000行
- 每一行都有一个名称和层次结构
此时:
- 如果我想找到所有的名字是在一个层次结构,包括子层次结构,我可以运行一个类似的查询:
where [hierarchy] like 'ab*'
- 我甚至可以做通配符连接,即使MS Access的查询设计GUI不处理它,我必须使用SQL视图:
join on [hierarchy] like 'ab*'
。
但是它可能非常慢。特别是当我的连接变得复杂时。
所以我想也许有一种方法来创建另一个表,所有的层次结构,它将维护父/子关系,第一个表将引用其中的一行。然后,不知何故,我可以使用它在第一个表中查找与第二个表中的层次结构和子层次结构匹配的行。
然而,我不知道这是否可能,以及我将如何去做。
在Oracle中,我们使用层次结构,其中每一行都有对其父行的引用。然后使用CONNECT BY子句将这些行彼此连接起来。
在sql-server