菜单的MySQL树结构

时间:2018-05-17 10:41:53

标签: mysql mysqli

我创建了一个MySQL数据库表,我希望根据父数据库显示菜单结构。该表格如下;

菜单

>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

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

const config = { headers: { 'Content-Type': 'multipart/form-data' } };
let fd = new FormData();

values.map((file) => {
  fd.append('File[]',file);
});

axios.post(`${ROOT_URL}/ImageUpload`, fd, config)
  .then((response) => {
    callback(response);
  })
  .catch(error => {
      errorResponse(error);
  })

PS:请注意,由于您的理解,我做了箭头。

1 个答案:

答案 0 :(得分:1)

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

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

BTW您的数据使得从SQL支持深度/变量嵌套变得非常棘手(但我同意Tim认为线程应该在其他地方处理)。还有其他方法可以在关系数据库中表示层次结构。