鍍金池/ 問答/數(shù)據(jù)庫/ MySQL語句求助

MySQL語句求助

從數(shù)據(jù)庫表到頁面的展示,sql具體怎么寫?

要求:一級(jí)分類需要排序,一級(jí)分類顯示完顯示它的子分類,子分類也需要排序。

數(shù)據(jù)庫表

結(jié)果展示

回答
編輯回答
心夠野

用遞歸啊 遞歸啊 遞歸

2018年5月22日 15:47
編輯回答
拮據(jù)
-- with一個(gè)臨時(shí)表(括號(hào)中是你要查詢的列名)
WITH temp(ID,Title,Url,ParentID,SortID)
AS
(
--1:初始查詢(這里的ParentID=0是數(shù)據(jù)中是最底層的根節(jié)點(diǎn))
SELECT ID,Title,Url,ParentID,1 AS Level FROM [TableName]
WHERE ParentID=0
UNION ALL
--2:遞歸條件
--3:這里的臨時(shí)表和原始數(shù)據(jù)表都必須使用別名,不然遞歸的時(shí)候不知道查詢的是那個(gè)表的列
SELECT a.ID,a.Title,a.Url,a.ParentID,b.SortID FROM [TableName] a

INNER JOIN
temp b
ON (a.ParentID=b.ID)--這個(gè)關(guān)聯(lián)關(guān)系很重要,一定要理解一下誰是誰的父節(jié)點(diǎn)
)
SELECT * FROM temp--4:遞歸完成后 一定不要少了這句查詢語句 否則會(huì)報(bào)錯(cuò)
  

》》點(diǎn)這里《《

2018年7月14日 20:30