0

我在同一张表中插入了类别和子类别。

id , name , mainCat ,

这是类别的名称。如果用户添加子类别,那么我会将父类别添加到 maincat 并将子类别添加到名称中。

但是当进行排序时,我对类别进行了排序。

谁能建议我最好的查询

4

3 回答 3

0

只要您只有两个级别的类别,那么使用自联接的如下查询就足够了。但是,如果您有许多级别(即层次结构),那么问题就会变得更加困难。有关更多信息,请参阅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 回答
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");

而($data = mysql_fetch_array($category)){
    $数组[] = $数据;
    $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/>';
    而($data2 = mysql_fetch_array($subCategory)){
        if($data2['mainCat']!=""){
            $array[] = $data2;
        }
    }   
}
于 2011-05-24T05:24:39.723 回答