如果其中一个字段被分组,则不获取表中其他字段的所有结果

时间:2012-10-06 08:59:52

标签: php mysql

我正在对汽车表中的模型字段进行分组,但我只得到一个,一个结果,而不是所有,来自按模型分组的每个差异。

假设在moldel领域有三个1990,19190,1990和三辆汽车铃木,本田,tyota是undel car_name,其模型是1990年。但我得到的结果只有一个汽车名称在1990模型。 Plz帮助我。

         $sql=mysql_query("SELECT * FROM cars group by  model ");
    while ($row=mysql_fetch_array($sql)) {
       $car_name=$row['car_name'];
       $model=$row['model'];


            ?>

    <table>

        <tr>
            <td><?php  echo $model ?></td>   //here is displaying  1990.

        </tr >
        <tr  >
              <td> <?php   echo $car_name;  ?></td>    // but here is displayed only onr car name istead of all.

        </tr>

    </table>



    <?php

      }

2 个答案:

答案 0 :(得分:0)

按特定列分组时,您要求该列的每个值只有一行。如果你想要1990 Honda和1990 Suzuki,你应该使用GROUP BY car_name, model来获得这对列的所有独特组合。

顺便说一句,您的模型列是否包含多年?汽车模型的名称如Accord,Camry,Celica。

编辑:

我认为这就是你要找的东西:

SELECT model, GROUP_CONCAT(car_name)
FROM cars
GROUP BY model

答案 1 :(得分:-1)

我认为应该有效

<table>
  <?php 
     /* use this if doing process elimination. 
      $q = '1990';
      $sql=mysql_query("SELECT * FROM cars WHERE model = '$q' "); 
    */
    $sql=mysql_query("SELECT * FROM cars WHERE ORDER By model ASC ");
    while ($row=mysql_fetch_array($sql)) {  ?>
        <tr>
            <td><?php  echo $row['model']; ?></td>   //here is displaying  1990.

        </tr >
        <tr  >
              <td> <?php   echo $row['car_name'];  ?></td>    // but here is displayed only onr car name istead of all.

        </tr>
 <?php     }      ?>
    </table>