【发布时间】:2013-10-14 15:43:13
【问题描述】:
我有一个名为 Grades 的表格,里面有一些列:
Id id_student Subjects grade
3 1 [->] Biology 8
4 1 [->] Math 4
5 1 [->] Sports 4
6 1 [->] Math 8
7 1 [->] English 9
8 4 [->] Sports 10
9 4 [->] English 7
我从这个表中选择了 id_student = 学生登录的所有内容
$sth = $this->dbh->prepare("SELECT * FROM note WHERE id_elev = :id_elev");
$sth->bindParam(":id_elev", $_SESSION['id']);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
所以我只选择了这个:
Id id_student Subjects grade
3 1 [->] Biology 8
4 1 [->] Math 4
5 1 [->] Sports 4
6 1 [->] Math 8
7 1 [->] English 9
我想为该学生的 Math 、 Biology 等取得平均成绩,但我希望不使用 SELECT * FROM Grades WHERE $result['Subjects'] == 'Biology' 因为有些学生可能没有这个主题在他们的日程安排中。
我想要这样的东西:
Id id_student Subjects grade
4 1 [->] Math 4
6 1 [->] Math 8
但没有 WHERE $results['Subjects'] == 'Math';
对不起,当你不懂很多英语时很难解释。我希望有人能理解我写的东西并给我一个建议。如有必要,我可以制作另一个名为 Subject 的表格。
【问题讨论】:
-
GROUP BY是您要找的吗?然后你可以在成绩列上做一些函数来计算出整体平均值,比如AVG。见this