WEB开发网
开发学院数据库MSSQL Server 层次结构的数据库处理 阅读

层次结构的数据库处理

 2010-03-12 00:00:00 来源:WEB开发网   
核心提示: 不像以前的邻接表模型的例子,这个查询工作时不关心树的深度问题,层次结构的数据库处理(6),在查询语句的 Between 子句中我们不关心节点的 rgt 值,因为 rgt 值总是落在同一父节点中,所以只需查询 rgt = lft + 1 的节点即可,SELECTnameFROMnested_cat

不像以前的邻接表模型的例子,这个查询工作时不关心树的深度问题。在查询语句的 Between 子句中我们不关心节点的 rgt 值,因为 rgt 值总是落在同一父节点中,就像 lft 值一样。

查询所有叶节点

在当前的模型下,查询叶节点比邻接表模型中的 LEFT JOIN 方法更简单。查看 nested_category 表,注意到叶节点的特征是其左右值是连续的,所以只需查询 rgt = lft + 1 的节点即可。

SELECT name 
FROM nested_category 
WHERE rgt = lft + 1; 
 
+--------------+ 
| name     | 
+--------------+ 
| TUBE     | 
| LCD     | 
| PLASMA    | 
| FLASH    | 
| CD PLAYERS  | 
| 2 WAY RADIOS | 
+--------------+ 

取得单条路径

嵌套集合模型下,无需使用多个自连接,代码:

SELECT parent.name
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = 'FLASH'
ORDER BY parent.lft;
+--------------------------+
| name                             |
+--------------------------+
| ELECTRONICS                 |
| PORTABLE ELECTRONICS |
| MP3 PLAYERS                  |
| FLASH                            |
+--------------------------+

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:层次 结构 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接