如果樹的層數固定就可以用語句查詢,但效率比較低。例如你說的三層:
成都創新互聯一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發展,成交一個客戶多一個朋友!為您提供成都網站設計、成都網站制作、成都網頁設計、小程序開發、成都網站開發、成都網站制作、成都軟件開發、成都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
.......
這樣自然而然的就成為了樹形結構表了。