0

重複の可能性:
mysql で 2 つのテーブルから 2 つの列を選択する方法

このクエリを実行しようとしていますが、別の出力が得られました。column(gradeoneから行をカウントし、 otherから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その列を個別の値のみに凝縮し、 count を介して、その個別の値に「グループ化」された行数を返すことができます。

詳細はこちら: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

于 2012-10-18T14:34:28.127 に答える
0

FROM table1, table2 の代わりにJOIN http://en.wikipedia.org/wiki/Join_(SQL ) を使用する必要があると思います。

于 2012-10-18T14:22:35.397 に答える