mysql – 用于层次关系的SQL

我有一张表,根据树状结构等层次关系对产品进行分类.我必须在任何级别选择一个类别和所有子类别.见下图: 例如我想要一个sql语句,当我查询传递id = 11时,它返回我(19,20,21,22,23,24,25,26) 最佳答案有几种不同的方法可以在MySQL中存储heirarchical数据.查

我有一张表,根据树状结构等层次关系对产品进行分类.我必须在任何级别选择一个类别和所有子类别.见下图:

例如我想要一个sql语句,当我查询传递id = 11时,它返回我(19,20,21,22,23,24,25,26)

最佳答案
有几种不同的方法可以在MySQL中存储heirarchical数据.查看Bill Karwin的presentation,它展示了四种选择.

>邻接清单
>路径枚举
>嵌套集
>关闭表

您正在使用邻接列表模型来存储层次数据,但不幸的是,这是您可以选择查询子树的最难模型.

你的选择是:

>更改为其他型号.
>将查询限制为n级深度.
>使用存储过程递归查询.有关此内容的更多信息,请参阅Quassnoi的系列文章 – Hierarchical queries in MySQL.

关于作者: dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐