Php 我可以只通过一个查询输出这个类别表(id和父\u id)吗?

Php 我可以只通过一个查询输出这个类别表(id和父\u id)吗?,php,mysql,Php,Mysql,我有一张桌子,看起来像: 我要做的是输出主要类别(那些类别id为null的类别),并在每个类别下列出以该类别id为父类别的类别。这样,我创建了一个小的层次输出 我可以通过简单地执行一个查询来实现这一点,该查询获取所有父级为null的类别。然后执行另一个查询,以查找将其作为其父级的类别。但是,我相信在PHP/MySQL中有一种方法可以做到这一点,只需一个查询 任何帮助,即使在概念上,都将不胜感激 您可以从数据库一次获取所有类别,并使用递归函数构建层次结构,请参见:是否只有一个深度级别?是的,只有

我有一张桌子,看起来像:

我要做的是输出主要类别(那些类别id为null的类别),并在每个类别下列出以该类别id为父类别的类别。这样,我创建了一个小的层次输出

我可以通过简单地执行一个查询来实现这一点,该查询获取所有父级为null的类别。然后执行另一个查询,以查找将其作为其父级的类别。但是,我相信在PHP/MySQL中有一种方法可以做到这一点,只需一个查询


任何帮助,即使在概念上,都将不胜感激

您可以从数据库一次获取所有类别,并使用递归函数构建层次结构,请参见:

是否只有一个深度级别?是的,只有一个深度级别。我不认为它会更深入。
SELECT COALESCE( c2.category_order, c1.category_order ) as top_order,
             c1.*
FROM categories c1
LEFT JOIN categories c2
ON c1.parent_category_id = c2.category_id
ORDER BY top_order, c1.category_order