如何创建一个MySQL视图,通过相关表显示嵌套集合模型中每个节点的所有路径?
我有两个表,类别和产品。类别表是嵌套集模型。Products表有一个如何创建一个MySQL视图,通过相关表显示嵌套集合模型中每个节点的所有路径?,mysql,nested-set-model,Mysql,Nested Set Model,我有两个表,类别和产品。类别表是嵌套集模型。Products表有一个序列号字段,该字段是唯一的。他们的模式如下: 类别: +----+-----------+-----+-----+-------+-------------+ | id | parent_id | lft | rgt | depth | title | +----+-----------+-----+-----+-------+-------------+ | 1 | Null | 2 | 9 |
序列号
字段,该字段是唯一的。他们的模式如下:
类别:
+----+-----------+-----+-----+-------+-------------+
| id | parent_id | lft | rgt | depth | title |
+----+-----------+-----+-----+-------+-------------+
| 1 | Null | 2 | 9 | 0 | Cloth |
| 2 | 1 | 3 | 6 | 1 | Men's |
| 3 | 2 | 4 | 5 | 2 | Suits |
| 4 | 1 | 7 | 8 | 1 | Women's |
| 5 | Null | 10 | 13 | 0 | Electronics |
| 6 | 5 | 11 | 12 | 1 | TVs |
+----+-----------+-----+-----+-------+-------------+
产品:
+-------------+---------------+
| category_id | serial_number |
+-------------+---------------+
| 3 | 5461354631 |
| 3 | 4521516545 |
| 4 | 8513453217 |
| 6 | 1235624165 |
+-------------+---------------+
我想创建一个视图,以显示所有序列号及其类别路径:
+---------------+-------------------+
| serial_number | path |
+---------------+-------------------+
| 5461354631 | Cloth/Men's/Suits |
| 4521516545 | Cloth/Men's/Suits |
| 8513453217 | Cloth/Women's |
| 1235624165 | Electronics/TVs |
+---------------+-------------------+
生成此视图的最佳查询是什么?非常确定这应该通过一系列步骤来完成:步骤1:选择所有具有左侧和右侧可包含叶节点的记录。第二步:左下订单。第3步:使用正斜杠作为分隔符将_CONCAT分组。然后最后选择它旁边的序列号。此选择生效后,您可以将其转换为视图。我将把这项工作留给其他人去做。这棵树有多深?@Nick没有存储过程就很难做到这一点,因为你必须在不知道自己有多深的情况下向后遍历这棵树。@AmirhosseinDZ请看一个通用示例