发布
社区首页 >问答首页 >MySQL查询嵌套/sub?

MySQL查询嵌套/sub?
EN

Stack Overflow用户
提问于 2012-04-02 20:09:07
回答 2查看 119关注 0票数 0

好的,这是我正在处理的数据:

代码语言:javascript
代码运行次数:0
复制
        category_child_id category_parent_id 
                        1                  0 
                        2                  0 
                        3                  1 
                        4                  1 
                        5                  3 
                        6                  3 
                        7                  4 
                        8                  0 
                        9                  8 
                       10                  8 
                       11                  0 
                       12                 11 
                       13                 11 
                       14                  0 
                       15                 14 
                       16                 14 
                       17                 14 
                       18                  0 
                       19                 18 
                       20                 18 
                       21                 18 
                        0                 19 

它基本上是有子类别的类别,等等。

如果我

代码语言:javascript
代码运行次数:0
复制
SELECT category_child_id FROM  category_xref WHERE category_parent_id = 1 

它返回3&4,这是正确的。然而,没有产品在这个类别中,只有在下面的类别,所以我实际上想要的结果是5&6以及。然而,这并不总是相同的,所以它需要是一个查询。

因此,基本上我需要运行一个查询来从表中获取所有连接的(嵌套的)类别。我已经尝试了很多方法,但都失败了,所以任何帮助都是很好的。

EN

回答 2

Stack Overflow用户

发布于 2012-04-02 20:21:46

如果你使用的是PostgreSQL,你可以使用"WITH RECURSIVE“,但是MySQL不支持动态的递归查询。您必须使用您的访问语言(例如PHP、Java)来完成此任务。

在那里,您可以迭代记录集并对每个返回的子行执行查询,直到不再返回子行。

票数 0
EN

Stack Overflow用户

发布于 2012-04-02 20:55:17

正如TRD所说,有一些SQL扩展支持自连接的递归搜索(Oracle使用'CONNECT BY'),然而这些扩展不仅在MySQL中不可用,而且也不是最有效或最灵活的解决方案。

我用谷歌搜索邻接表模型--我找到了this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9976138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档