【发布时间】:2014-05-14 10:56:17
【问题描述】:
我的数据库叫:students
MY students 表是:有列的学生:
STUDENT_ID , STUDENT NAME, ETC.
我的缺勤表是:带列的缺勤:
ABSENCE_ID, STUDENT_ID, ETC.
考虑到students_id,它应该计算每个学生有多少缺勤记录,并在表格中显示students_id,例如:
+------------+-----------+
| STUDENT ID | ABSENCES |
+------------+-----------+
| 1 | 3 |
| 2 | 8 |
| 3 | 437 |
+------------+-----------+
注意:必须从学生表中读取 STUDENT_ID,而不是从缺勤表中读取这是问题!!!!
这是我的两个问题
$result = mysql_query("SELECT student_id, COUNT(*) AS count FROM absences GROUP BY student_id ORDER BY count DESC;");
$result2 = mysql_query("SELECT students.student_id, absences.student_id FROM students INNER JOIN absences ON students.student_id = absences.student_id");
第一个查询运行良好(它计算表上的记录并告诉我缺勤的次数)
第二个查询不工作,我希望这个查询工作并为两者进行一个查询
我的 php 代码如下所示:
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><font size=\"4\" color=\"white\">" . $row['student_id'] . "</font></td>";
echo "<td><font size=\"4\" color=\"white\">" . $row['count'] . "</font></td>";
echo "</tr>";
}
【问题讨论】:
-
第二个查询对我来说没有意义。你希望它完成什么?它选择的两个 id 将始终相同...
-
我放在那里的 mysql_fetch_array 仅适用于第一个查询。第二个查询与 result2 和 row2 相同,但我仅将其作为示例发布
-
那么第二个查询的意义何在?
-
@DiellAbazi 不仅会放
GROUP BY吗?像这样:SELECT students.student_id, count(*) as ABSENCES FROM students s INNER JOIN absences a ON s.student_id = a.student_id GROUP BY a.student_id -
@LucasHenrique 当我做类似的事情时它说:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\at\retrieve.php on line 41我应该使用 foreach 而不是 while ???