mysql菜单树结构

v2g6jxz6  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(345)

我已经创建了一个mysql数据库表,我想在其中显示基于其父级的菜单结构。表格如下:;

菜单

id     menuname                     parentid
-----------------------------------------------
1      dashboard                         0
2      Content                           0
3      Home Page Content                 2
4      Banners                           2
5      Settings                          0
6      Block Content                     3
7      Site Content                      3

因此菜单结构将如下所示:

>dashboard
>Content
-->Home Page Content
  -->Block Content
  -->Site Content
-->Banners
>Settings

我已经编写了如下的查询,它产生了重复的行,而不是按照上面的期望。

SELECT node.id, node.name 
FROM menu AS node, menu AS parent WHERE node.parentid = parent.parentid

ps:请注意,我做箭头是因为你的理解。

gwo2fgha

gwo2fgha1#

它没有产生重复的行,而是返回了错误的数据。应该是:

SELECT node.id, node.name 
FROM menu AS node, menu AS parent WHERE node.parentid = parent.id

顺便说一句,您的数据使得从sql支持深度/变量嵌套非常困难(但是我同意tim的观点,线程应该在别处处理)。在关系数据库中还有其他表示层次结构的方法。

相关问题