一般比較普遍的就是四種方法:(具體見 SQL Anti-patterns這本書)

金塔ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
Adjacency List:每一條記錄存parent_id
Path Enumerations:每一條記錄存整個tree path經過的node枚舉
Nested Sets:每一條記錄存 nleft 和 nright
Closure Table:維護一個表,所有的tree path作為記錄進行保存。
找樹葉簡單啊
SELECT
*
FROM
表 main
WHERE
NOT EXISTS (
SELECT * FROM 表 sub WHERE main.ID = sub.ParentID
)
也就是對于 表的 每一行, 不存在有其他行的數(shù)據(jù), ParentID 等于 當前行的 ID
有很多種寫法的,拿出包含1得,然后判斷是否存在2
SELECT DISTINCT A
FROM TAB t1
WHERE B = '1' AND EXISTS (SELECT 1 FROM TAB WHERE A = t1.A and B = '2')
2)拿出1得,2得各自紀錄,然后連接
SELECT t1.A
FROM (SELECT DISTINCT A FROM TAB WHERE B = '1') t1,
(SELECT DISTINCT A FROM TAB WHERE B = '2') t2
WHERE t1.A = t2.A
3)拿出1, 2 然后數(shù)個數(shù)
SELECT A
FROM TAB
WHERE B IN ('1', '2')
GROUP BY A
HAVING COUNT(DISTINCT B) = 2
with?a?as?(
select?pk_comp,name,pk_fathercomp?from?company
union
SELECT?pk_dept,deptname,(CASE?WHEN?pk_fathedept=0?THEN?pk_comp?ELSE?pk_fathedept?END)?as?pk_comp?FROM?dept)
select?a.name,b.name?from?a?as?b
inner?join?a?on?a.pk_comp=b.pk_fathercomp
create?table?T1(this?varchar(10),?parent?varchar(10))
insert?into?T1(this,parent)
values?('id1',null)
,('id2',null)
,('id3','id1')
,('id4','id2')
,('id5','id3')
,('id6','id3')
,('id7','id4')
,('id8','id7')
--?sql?server的cte功能
with?tree(this,parent,root,depth)?as?(
select?this,parent,?this?as?root,?1?as?depth?from?T1?where?parent?is?null
union?all
select?a.this,a.parent,?b.root,?b.depth+1?as?depth?from?T1?a,?tree?b?where?a.parent=b.this
)
select?this,parent,root,depth
from?tree
order?by?root,depth,this
樹形結構的話按照算法分析的原理,是先查詢父節(jié)點,然后查詢器父節(jié)點的左子樹(也就是句柄)然后在查詢句柄的句柄。。還有你的問題我不清楚,你到底是想問什么。。你可以看看算法分析
文章名稱:樹形結構nosql,樹形結構屬于什么模型
新聞來源:http://chinadenli.net/article34/dsggsse.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、App設計、靜態(tài)網(wǎng)站、、微信公眾號、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)