数据库库设计:树结构的数据读取
来源:互联网 发布:不锈钢橱柜品牌 知乎 编辑:程序博客网 时间:2024/06/05 16:23
树形结构在实际中应用很多,但在数据库中一般也是设计为表格,如何读取,子孙节点,或者是祖先节点?
在Oracle中使用start with connect by prior
select * from tablename start with cond1
connect by cond2
where cond3;
start with 子句:遍历起始条件,有个小技巧,如果要查父结点,这里可以用子结点的列,反之亦然。
connect by 子句:连接条件。关键词prior,prior跟父节点列parentid放在一起,就是往父结点方向遍历;prior跟子结点列subid放在一起,则往叶子结点方向遍历,
parentid、subid两列谁放在“=”前都无所谓,关键是prior跟谁在一起。
查找指定节点的所有祖先节点
select * from tablename start with id=76 connect by prior parentid=id查找指定节点的所有子孙节点
select * from tablename start with id=76 connect by prior id=parentid
在SQL Server 中使用CTE递归查询
CTE的语法:
WITH CTE名称(字段列表)
AS
(
查询语句
)
例如:
WITH lmenu(name,senior)
as
(
SELECT name,senior from menu
)
查找指定节点的所有子孙节点
WITH lmenu(name,id) as ( /*初始查询*/ SELECT name,id FROM tablename WHERE id=76 UNION ALL /*递归*/ SELECT A.NAME,A.id FROM tablename A,lmenu b /*递归条件*/ where a.id = b.parentid) /*递归完成后返回数据*/SELECT * from lmenu
0 0
- 数据库库设计:树结构的数据读取
- [数据库]树结构的数据库设计
- 数据库结构的设计
- 目录树结构的数据库设计思考
- 目录树结构的数据库设计思考
- 数据库表设计系列:树形结构数据
- 常见数据库设计 — 树形结构数据
- js读取数据库的数据
- 树形结构-树形结构的数据存储与数据库表设计
- 数据库结构的简单设计
- 数据库结构的设计原则
- 数据库表结构的设计
- (转)ASP.NET 2.0 从数据库中读取数据生成分层的结构化TreeView
- 软盘结构及软盘数据的读取
- 软盘结构及软盘数据的读取
- 读取数据库表结构
- mybatis实现读取树结构数据
- 关于数据库数据的设计
- Ubuntu14.04+RabbitMQ3.6.3+Golang的最佳实践
- 关于更换WordPress主题时突然出现HTTP ERROR 500的解决方法
- 分布式服务框架学习笔记4 服务路由
- Java温习——数组
- 一次完整的HTTP事务是怎样一个过程?
- 数据库库设计:树结构的数据读取
- URL中文乱码及特殊字符处理
- 快速计算多项式(霍纳规则)
- Django 过滤Html指定标签
- JSP的隐含对象
- TX_ISOLATION LEVEL
- vue.js是什么
- JDBC的PreparedStatement启动事务使用批处理executeBatch()
- Struts2工作原理