好的,这是我正在使用的数据:
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
它基本上是子类别等类别等。
如果我
SELECT category_child_id FROM category_xref WHERE category_parent_id = 1
它返回3& 4这是正确的。但是,此类别中没有产品仅在下面的类别中,因此我实际想要的结果是5& 6也是。然而,这并不总是相同的,所以它确实需要是一个查询。
所以基本上我需要运行一个查询来从表中获取所有连接(嵌套)类别。我已经尝试了许多失败结果的方法,所以任何帮助都会很棒。
答案 0 :(得分:0)
如果您使用的是PostgreSQL,则可以使用“WITH RECURSIVE”但MySQL不支持动态递归查询。您必须使用您的访问语言(例如PHP,Java) 在那里,您可以迭代记录集并对每个返回的子行执行查询,直到不再返回子行为止。
答案 1 :(得分:0)
正如TRD所说,有一些SQL的扩展支持递归搜索自连接(Oracle使用'CONNECT BY')但是这些不仅在MySQL中不可用,它们也不是最有效也不灵活的解决方案。 / p>
有一个google用于邻接列表模型 - 我做了并找到了this。