如果树的层数固定就可以用语句查询,但效率比较低。例如你说的三层:
成都创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站设计、成都网站制作、成都网页设计、小程序开发、成都网站开发、成都网站制作、成都软件开发、成都app软件开发公司是成都本地专业的网站建设和网站设计公司,等你一起来见证!
select id,v2.name+name from t1 inner join
(select id,v1.name+name as name from t1 inner join
(select id,name from t1 where parentid = 0) v1 on t1.parentid = v1.id) v2 on t1.parentid = v2.id
建一个表就行了
表里要有一个主键ID
然后还要有一个父级ID列
哪果父级列为0那么它就是最外层的节点,如果不是,去找相应的父级。
例如
ID ParentID NodeName
1 0 A
2 0 B
3 1 A1
4 1 A2
5 2 B1
6 2 B2
7 3 A11
8 3 A12
9 6 B21
……
明白否
首先你要确定你所使用的DBMS产品,因为在ORACLE和SQL SERVER等DBMS的SQL语法有局部的不同,但大体上语句是一样的。
CREATE TALBE tmpDB (
tid int identity(1,1) primary key, --表主键,可以不用加not null一般使用了primary key就可默认为not null
tname varchar(100) not null, --节点名称
fatherID int --父节点ID
)
GO
生成树形数据结构
select
*
from
table
start with id = ?
connect by prior id = ?
树形结构表关键 就是要有上一级的关联字段:
parentid
ID
.......
这样自然而然的就成为了树形结构表了。