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

层次结构的数据库处理

 2010-03-12 00:00:00 来源:WEB开发网   
核心提示: 我们可以使用CONCAT、REPEAT 函数对深度数值操作来缩进我们的分类名称,形成树状层次形式,层次结构的数据库处理(8), SELECTCONCAT(REPEAT('',COUNT(parent.name)-1),node.name)ASnameFROMnested_cate

我们可以使用CONCAT、REPEAT 函数对深度数值操作来缩进我们的分类名称,形成树状层次形式。

SELECT CONCAT( REPEAT(' ', COUNT(parent.name) - 1), node.name) AS name
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.name
ORDER BY node.lft;
+----------------------------+
| name                                |
+----------------------------+
| ELECTRONICS                   |
|  TELEVISIONS                   |
|   TUBE                             |
|   LCD                               |
|   PLASMA                         |
|  PORTABLE ELECTRONICS |
|   MP3 PLAYERS                 |
|    FLASH                          |
|   CD PLAYERS                  |
|   2 WAY RADIOS              |
+---------------------------+

当然,在客户端程序当中,你可能会直接利用深度值来显示层次结构。Web 开发者可以循环处理这个结果表,根据深度值的不同添加 <li></li> 和 <ul></ul> 等标记来形成树状样式。

子树的深度

当我们需要子树的深度信息时,我们在自连接中不能限制节点或者父表,因为这会破坏查询结果。我们可以换一种做法,通过添加第三个自连接,和一个子查询,以获得我们子树的新起点。

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

Tags:层次 结构 数据库

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