MySQL语句求助

从数据库表到页面的展示,sql具体怎么写?

要求:一级分类需要排序,一级分类显示完显示它的子分类,子分类也需要排序。

数据库表

结果展示

阅读 1.5k
2 个回答
新手上路,请多包涵

用递归啊 递归啊 递归

-- with一个临时表(括号中是你要查询的列名)
WITH temp(ID,Title,Url,ParentID,SortID)
AS
(
--1:初始查询(这里的ParentID=0是数据中是最底层的根节点)
SELECT ID,Title,Url,ParentID,1 AS Level FROM [TableName]
WHERE ParentID=0
UNION ALL
--2:递归条件
--3:这里的临时表和原始数据表都必须使用别名,不然递归的时候不知道查询的是那个表的列
SELECT a.ID,a.Title,a.Url,a.ParentID,b.SortID FROM [TableName] a

INNER JOIN
temp b
ON (a.ParentID=b.ID)--这个关联关系很重要,一定要理解一下谁是谁的父节点
)
SELECT * FROM temp--4:递归完成后 一定不要少了这句查询语句 否则会报错
  

》》点这里《《

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题