0

可能重复:
如何从mysql中的两个表中选择两列

我正在尝试执行此查询,但我得到了不同的输出。我想从一个column(grade)中计算行并从其他中table grading选择 。column(level)table info

for($i=1; $i<9; $i++)
{
$result = mysql_query("SELECT COUNT(grade),level FROM grading,info WHERE grade = $i");
 while ($row = mysql_fetch_array($result))
 {

    echo "<tr><td>";
    echo $row['level'];
    echo "</td>";
    echo "<td>";
    echo  $row['COUNT(grade)'];
    echo "</td></tr>";
 }
}

我的数据库:

      level   grade          

        A       1
        B       2
        C       6
        D       3
        E       4
        F       5
        G       6
        H       8

我的输出:

      level   grade     
        A       8
        B       8
        C       8
        D       8
        E       8
        F       16
        G       0
        H       8

但这是错误的,我想计算有多少学生有成绩 1,2,3,4,5,6,但输出显示其他内容。

4

2 回答 2

0

我不确定我是否理解您想要的,但如果我认为您正在寻找的内容是正确的,请尝试:

select grade, count(*) from students group by grade;

GROUP BY将该列压缩为仅不同的值,并允许您通过计数返回有多少行被“分组”到该不同的值中。

更多信息在这里:http ://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

于 2012-10-18T14:34:28.127 回答
0

我认为,您必须使用 JOIN http://en.wikipedia.org/wiki/Join_(SQL ) 而不是 FROM table1、table2。

于 2012-10-18T14:22:35.397 回答