我已经创建了一个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:请注意,我做箭头是因为你的理解。
1条答案
按热度按时间gwo2fgha1#
它没有产生重复的行,而是返回了错误的数据。应该是:
顺便说一句,您的数据使得从sql支持深度/变量嵌套非常困难(但是我同意tim的观点,线程应该在别处处理)。在关系数据库中还有其他表示层次结构的方法。