Mysql 获取父节点的所有子节点

Mysql 获取父节点的所有子节点,mysql,treeview,yii2-advanced-app,kartik-v,Mysql,Treeview,Yii2 Advanced App,Kartik V,我有一个树状视图,它是从。下面是我的树视图 桌子 我想做什么 我想通过MySQL查询选择Floor-1的所有子节点 我已尝试运行如下查询 SELECT * FROM `mdc_node` m WHERE m.`lft` = 11-2 输出 期望输出 我想要以下输出 ------------------------------------------------------------ | `id` | `root` | `lft` | `rgt` | `lvl` | `name` | '

我有一个树状视图,它是从。下面是我的树视图

桌子

我想做什么

我想通过MySQL查询选择Floor-1的所有子节点

我已尝试运行如下查询

SELECT * FROM `mdc_node` m 
WHERE m.`lft` = 11-2
输出

期望输出

我想要以下输出

------------------------------------------------------------
| `id` | `root` | `lft` | `rgt` | `lvl` | `name`   | 'icon' |
------------------------------------------------------------
| 3    |    1   |   3   |    4  |   2   |GIS Office| folder |
| 4    |    1   |   5   |    6  |   2   |   Ali    |  user  |
| 5    |    1   |   7   |    8  |   2   |   Usman  |  user  |
| 6    |    1   |   9   |    10 |   2   |  Faisal  |  user  |
------------------------------------------------------------
下面是我的SQL小提琴

我想选择父节点下的所有子节点

我想通过MySQL查询选择Floor-1的所有子节点

我想要以下输出

------------------------------------------------------------
| `id` | `root` | `lft` | `rgt` | `lvl` | `name`   | 'icon' |
------------------------------------------------------------
| 3    |    1   |   3   |    4  |   2   |GIS Office| folder |
| 4    |    1   |   5   |    6  |   2   |   Ali    |  user  |
| 5    |    1   |   7   |    8  |   2   |   Usman  |  user  |
| 6    |    1   |   9   |    10 |   2   |  Faisal  |  user  |
------------------------------------------------------------
从mdc_节点中选择*; 选择t1.id、t1.root、t1.lft、t1.rgt、t1.lvl、t1.name、t1.icon -从表的第一个副本开始 来自mdc_节点t1 -加入用于获取所需父级信息的表的第二个副本 加入mdc_节点t2 -左侧和右侧的子节点位于其父节点的左侧和右侧之间 关于t2.lft和t2.rgt之间的t1.lft -我们只需要下一个层次 t1.lvl=t2.lvl+1 -指定父项 其中t2.name=‘楼层1’;
唯一的问题-我无法理解为什么行id=3的图标在输出中是“文件夹”,而在源数据中是“用户”。

请:用创建表+插入脚本或创建在线小提琴替换图片;以文本表格形式为过账数据添加所需输出;指定精确的MySQL版本。@Akina我添加了itI未看到:1以文本表形式发布数据的所需输出2精确的MySQL版本。与问题无关的列可能会被跳过,或者最好从小提琴上删除。@Akina我确实需要所有字段。为了让事情更简单,我刚刚发布了其中的一些。请参阅我编辑的问题,这是因为1楼是user@Faisal如果是这样的话,我对您的存储结构理解有误,似乎。。。返回的所有4个节点都具有相同的级别和相同的父节点-为什么仅在id=3时将图标设置为“文件夹”?在屏幕截图中,所有4个子节点都是完全相等的,并且可以正式交换…级别将始终相同,因为级别从级别为1的父节点开始,之后每当添加新节点时,其级别将为父节点级别+1。至于icon,我遵循的是一个层次结构Building=>Floor=>Customer。你可以进一步阅读它在我已经添加了一个新的节点,然后在它下面添加了一个子节点。之后,我运行你的脚本。但它也向我展示了第二个节点的子节点,这是@Faisal,我添加了一个新节点,然后在它下面添加了一个子节点。之后,我运行你的脚本。但它向我展示了,第二个节点的子节点,以及Oops,存储方案稍微有些不同。查询已编辑-查看。