【发布时间】:2011-03-15 15:55:24
【问题描述】:
我想知道我数据库中排名前 3 的学生,所以我使用了 AVG 函数,但似乎我有一些错误,这是我的代码:
$result = mysql_query("SELECT grade.GStudNo, AVG(grade.Grade) as Grade, students.LName, students.FName, students.MName, students.Course
FROM students INNER JOIN grade ON students.StudNo = grade.GStudNo
WHERE GSem = '1st Semester' AND GYear = '2007'
GROUP BY grade.GStudNo
ORDER BY AVG(grade.Grade) ASC")
...
<?php while($myrow = mysql_fetch_assoc($result))
{?>
<tr>
<td><?php echo "$myrow[LName] ";echo "$myrow[FName] "; echo "$myrow[MName]"; ?></td>
<td><?php echo "$myrow[Grade]";?></td>
</tr>
<?php } ?>
这是错误消息:注意:未定义索引:第 368 行 C:\xampp\htdocs\strawman\default.php 中的等级
但我定义了 AVG(grade.Grade)AS Grade.. :(
【问题讨论】:
-
@PiDo:你说的是
but it seems i have some errors。能否请您发布错误消息? -
那些错误会是......?
-
您的错误是什么?我会开始考虑不按函数排序,如果您包含聚合列,则选择必须包含聚合或参与分组依据的列。
-
@Hadley - 不在
MySQL中,您可以按PK分组,然后在选择列表中选择其他表格列。程序员有责任确保所选列只能存在一个值,但不能分组,就好像有多个结果未定义一样。 -
$result似乎没有返回任何行。