按列名称分组'似乎不起作用

时间:2016-07-06 10:03:29

标签: php mysql sql

我正在尝试获取之前已多次保存的类别名称。因此,要获取名称,我需要对名称进行分组,以便它不会多次显示,但是我尝试以之前提到的方式进行操作并且到目前为止都失败了。 我确定我在这里做了一些可怕的错误,我只是无法找到为什么我无法将它分组。 任何帮助表示赞赏。感谢。

$valsubcat=mysqli_query($conn,"SELECT categoryid 
                               FROM subcategorymaster 
                               WHERE subcatid=$valitem1[0]");

while($valsubcat1=mysqli_fetch_array($valsubcat))
{
    $valcat=mysqli_query($conn,"SELECT CategoryName 
                                FROM categorymaster 
                                WHERE categoryid=$valsubcat1[0] 
                                GROUP BY CategoryName");
    while($valcat1=mysqli_fetch_array($valcat)) 
    {
        echo "<tr><td>".$valcat1[0]."</td></tr>";   
    }
}

1 个答案:

答案 0 :(得分:3)

您可以使用JOIN

将其减少为一个查询
$sql = "SELECT DISTINCT scm.categoryid, cm.CategoryName
        FROM subcategorymaster as scm
            LEFT JOIN categorymaster cm ON cm.categoryid = scm.categoryid
        WHERE scm.subcatid = {$valitem1[0]}");