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