在创建 SQL 查询以显示一个表中的类别和子类别时,我遇到了很多麻烦。我有以下列:
category_id
category_name
category_parent
category_order
基本上我想要产生的结果是这样的
parent category 1
sub category 1
sub category 2
parent category 2
sub category 1
sub category 2
sub category 3
parent category 3
sub category 1
如果 category_order 设置为 0,则类别或子类别应根据它们创建的顺序进行排序。为此,我计划按 id 排序。
如果可能的话,我想使用 UNION 以便它们已经有序,我只需要循环。谁能帮我建立一个查询。
实际上我已经有一个使用 JOIN 但结果并不像我想要的那样精确。
这是我之前的查询:
SELECT
fcat.id fcat_id,
fcat.name fcat_name,
fcat.order fcat_order,
fcat.parent fcat_parent,
fsub.id fsub_id,
fsub.name fsub_name,
fsub.order fsub_order,
fsub.parent fsub_parent
FROM forum_categories AS fcat
LEFT OUTER JOIN forum_categories AS fsub ON fcat.id = fsub.parent
ORDER BY ISNULL(fcat.order) ASC, fcat.id ASC, ISNULL(fsub.order) ASC, fsub.id ASC
但是,它不会对子类别进行排序,因为父类别和子类别是连接在一起的。我的查询只对父母进行排序。