中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

旅行社建網站如何自己做網站

旅行社建網站,如何自己做網站,自己怎么做免費網站,做測評的網站你有沒有遇到過這樣一種情況: 一張表就實現(xiàn)了一對多的關系,并且表中每一行數(shù)據(jù)都存在“爺爺-父親-兒子-…”的聯(lián)系,這也就是所謂的樹形結構 對于這樣的表很顯然想要通過查詢來實現(xiàn)價值絕對是不能只靠select * from table 來實現(xiàn)的&#xff0…

你有沒有遇到過這樣一種情況:
一張表就實現(xiàn)了一對多的關系,并且表中每一行數(shù)據(jù)都存在“爺爺-父親-兒子-…”的聯(lián)系,這也就是所謂的樹形結構
在這里插入圖片描述
對于這樣的表很顯然想要通過查詢來實現(xiàn)價值絕對是不能只靠select * from table 來實現(xiàn)的,下面提供兩種解決方案:

1.自連接

inner join 關鍵可以實現(xiàn)多種分類的查詢,其實SQL很簡單

SELECTone.id one_id,one.label one_label,two.id two_id,two.label two_label
FROMcourse_category oneINNER JOIN course_category two ON two.parentid=one.idINNER JOIN course_category three ON three.parentid=two.idWHERE one.id='1' AND one.is_show='1' AND two.is_show='1'ORDER BY one.orderby,two.orderby

也是規(guī)規(guī)矩矩的就查出一整棵樹
在這里插入圖片描述
這種查詢的原則就是通過parentId去實現(xiàn),“爺爺找爸爸,爸爸找兒子,兒子找孫子”,下面來逐幀慢放:
1.one在這里插入圖片描述
2.one,two
在這里插入圖片描述
3.one,two,three
在這里插入圖片描述
可以看到,只有在樹的層級確定的情況下我才能選擇性的去自連接子表,某種意義上來講這種方法存在弊端,我要是insert進去層級更低的新子節(jié)點那我的sql就得改變,從而就造成了一個“動一發(fā)而牽全身”的硬編碼問題,實在是不夠穩(wěn)妥!

2.遞歸!

向上遞歸

首先聲明,如果mysql的版本低于8是不支持遞歸查詢的函數(shù)的!
下面來看一下如何用遞歸優(yōu)雅的實現(xiàn),從樹根查到樹頂:
先來看一個簡單的Demo

	with RECURSIVE t1 AS(SELECT 1 AS nunion allSELECT n+1 FROM t1 WHERE n<5)SELECT * from t1

在這里插入圖片描述
該怎么理解這每一步呢?
WITH RECURSIVE t1 AS:
這是遞歸查詢的開始,創(chuàng)建了一個名為t1的遞歸表。
SELECT 1 AS n:
在t1表中,插入了一個初始行,值為1,命名為n。
UNION ALL:
使用UNION ALL運算符將初始行和遞歸查詢結果合并,形成遞歸步驟。這也就是下次遞歸的起點表
SELECT n+1 FROM t1 WHERE n<5:
遞歸部分的查詢,從t1表中選擇n加1的結果,當n小于5時進行遞歸。
SELECT * FROM t1:
最終查詢,返回t1表的所有行。
其實在使用遞歸的過程只需要注意要去避免死龜就好!
如何去查開頭的那張樹形表呢?這樣就好:

with recursive temp as (
select * from  course_category p where  id= '1'union all
select t.* from course_category t inner join temp on temp.id = t.parentid
)
select *  from temp order by temp.id, temp.orderby

下面我們逐幀分析:
在這里插入圖片描述
其實關鍵的地方就在于第三步,在樹根的基礎上去找葉子:
神之一手:
select t.* from course_category t inner join temp on temp.id = t.parentid
這就是遞歸相較于第一種方式可以無視層級inner jion的關鍵,因為這個動作已經被遞歸自動完成了,遞歸巧妙地一點就在這里!

向下遞歸

基于向上遞歸父找子的思想,向下遞歸則是子找父,即在葉子基礎上union all之后去找根
子的parentId=父的id

with recursive temp as (
select * from  course_category p where  id= '1-1-1'union all
select t.* from course_category t inner join temp on temp.parentid = t.id  
//temp表是下次遞歸的基礎
)
select *  from temp order by temp.id, temp.orderby

值得注意的是Mysql為了避免無限遞歸遞歸次數(shù)為1000次,也可以人為來設置cte_max_recursion_depth和max_execution_time來自定義遞歸深度和執(zhí)行時間
使用遞歸的好處無需言語,一次io連接就搞定了全部

http://www.risenshineclean.com/news/56620.html

相關文章:

  • wordpress香港主機推薦北京seo排名廠家
  • nat123做網站廈門百度快速優(yōu)化排名
  • 做的網站手機打不開怎么回事啊徐州網站建設
  • 貿易公司如何做英文網站保定seo網絡推廣
  • 網站文字超鏈接怎么做seo 360
  • 網站建設設計設計公司哪家好軟文推廣是什么意思?
  • 百度seo培訓課程廈門seo服務
  • 做網站要買數(shù)據(jù)庫安卓優(yōu)化大師hd
  • 個人博客系統(tǒng)wordpress電腦優(yōu)化軟件推薦
  • 做網站的技術關鍵網站如何注冊
  • wordpress多站點子網站css錯誤手機百度賬號登錄入口
  • 好點得手機網站托管一套完整的運營方案
  • 南陽網站建設seo品牌網站建設方案
  • wordpress調用當前頁面鏈接鄭州seo優(yōu)化外包熱狗網
  • 電子商務網站建設項目規(guī)劃書排名點擊工具
  • 馬鞍山網站建設seo網站推廣可以自己搞嗎
  • 工作室網站建設方案模板seo國外英文論壇
  • 免費做問卷的網站好精準營銷理論
  • c 新手一個人做網站最有效的15個營銷方法
  • 簡潔的企業(yè)網站無錫seo關鍵詞排名
  • 如何快速找到做網站的客戶seo關鍵詞排名優(yōu)化哪好
  • 人事處網站開發(fā)文獻綜述有廣告位怎么找廣告商
  • 做淘客網站怎么深圳廣告公司
  • 網站建設好怎么優(yōu)化上海搜索排名優(yōu)化
  • 靜海做網站公司網絡推廣圖片大全
  • 深圳航空公司seo外鏈優(yōu)化
  • 創(chuàng)造與魔法官方網站一起做喜歡的事瀏覽器里面信息是真是假
  • 免費的域名解析楓樹seo網
  • 河北滄州泊頭做網站的電話aso優(yōu)化平臺有哪些
  • 網站設計培訓seo信息優(yōu)化