条件为

我已经在同一张表中插入了类别和子类别。 id,名称,mainCat, 这是类别的名称。如果用户添加子类别,则我将父类别添加到maincat,子类别添加到名称。 但是当排序时,我对类别进行了明智的排序。 谁能建议我最好的查询     
已邀请:
只要您只有两个级别的类别,那么使用自连接的如下查询就足够了。但是,如果您有许多级别(即层次结构),则问题会变得更加棘手。有关更多信息,请参见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;
    
我尝试了很多查询,但最终我用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 \”。\'
\';     while($ data2 = mysql_fetch_array($ subCategory)){         if($ data2 [\'mainCat \']!= \“ \”){             $ array [] = $ data2;         }     } }     
你有没有尝试以下:
SELECT t1.id, t1.name
FROM tablename t1
LEFT JOIN tableName t2
ON t2.name = t1.mainCat
    

要回复问题请先登录注册