0

カテゴリとサブカテゴリの両方を同じテーブルに挿入しました。

id、name、mainCat、

カテゴリの名前は次のとおりです。ユーザーがサブカテゴリを追加すると、親カテゴリがmaincatに追加され、サブカテゴリが名前に追加されます。

しかし、並べ替えるときは、カテゴリごとに並べ替えます。

誰もが私に最高のクエリを提案できますか

4

3 に答える 3

0

以下を試してみてください:

SELECT t1.id, t1.name
FROM tablename t1
LEFT JOIN tableName t2
ON t2.name = t1.mainCat
于 2011-05-24T06:04:48.867 に答える
0

私はクエリでたくさん試しましたが、最終的にはphpで作成しました

$category = mysql_query("SELECT * FROM category WHERE mainCat = '' ORDER BY `name` ASC");

while($data = mysql_fetch_array($category)){
    $array[] = $data;
    $subCategory = mysql_query("SELECT * FROM category WHERE mainCat ='".$data['name']."' ORDER BY `name` ASC");
    echo "SELECT * FROM category WHERE mainCat ='".$data['name']."' ORDER BY `name` ASC".'<br/>';
    while($data2 = mysql_fetch_array($subCategory)){
        if($data2['mainCat']!=""){
            $array[] = $data2;
        }
    }   
}
于 2011-05-24T05:24:39.723 に答える
0

カテゴリが 2 レベルしかない限り、自己結合を使用した次のようなクエリで十分です。ただし、多くのレベル (階層) がある場合、問題はさらに難しくなります。詳細については、 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/を参照してください。

SELECT p.Name, s.Name
FROM Categories s
LEFT JOIN Categories p ON s.mainCat = p.ID
ORDER BY p.Name, s.Name;
于 2011-05-23T09:41:28.770 に答える