MySQL查询嵌套/子?

MySQL查询嵌套/子?,mysql,Mysql,好的,这是我正在处理的数据: category_child_id category_parent_id 1 0 2 0 3 1 4 1

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

        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 
它基本上是分类和子分类等

如果我

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


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

如果您使用的是PostgreSQL,则可以将其用于递归查询,但MySQL不支持动态递归查询。您必须使用您的访问语言,例如PHP、Java。
在那里,您可以迭代您的记录集,并对每个返回的子行执行查询,直到不再返回更多的子行。

正如TRD所说,SQL有一些扩展支持递归搜索自联接Oracle使用的“CONNECT BY”,但这些扩展不仅在MySQL中不可用,它们也不是最有效、最灵活的解决方案


有一个谷歌邻接列表模型-我找到了。

你的父子关联中有一个循环。如果通过类别树进行递归查询,这可能导致无限循环。e、 g.0以19为父,19以18为父,18以0为父->循环。我通过谷歌搜索发现了类似的东西:,这可能对Paul有所帮助。
SELECT category_child_id FROM  category_xref WHERE category_parent_id = 1