1 つのテーブルからカテゴリとサブカテゴリを表示するための 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
ただし、親カテゴリとサブカテゴリが結合されているため、サブカテゴリは並べ替えられません。私のクエリは親のみをソートします。