gpt4 book ai didi

php - sql query cannot read from another table (mysql 表关系)

转载 作者:行者123 更新时间:2023-11-29 00:13:55 26 4
gpt4 key购买 nike

我的数据库叫做:students

我的学生表是:有列的学生:

STUDENT_ID , STUDENT NAME, ETC.

我的缺勤表是:缺勤列:

ABSENCE_ID, STUDENT_ID, ETC.

它应该计算每个学生有多少缺勤记录,考虑到 students_id 并在表中显示 students_id 例如:

+------------+-----------+
| STUDENT ID | ABSENCES |
+------------+-----------+
| 1 | 3 |
| 2 | 8 |
| 3 | 437 |
+------------+-----------+

NOTE: THE STUDENT_ID MUST BE READ FROM STUDENTS TABLE NOT FROM ABSENCES TABLE THIS IS THE PROBLEM!!!!

这是我的两个问题

$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>";
}

最佳答案

您可以使用这个单一查询来完成您的任务:

SELECT 
s.student_id,
COUNT(a.student_id) as count
FROM students s
LEFT JOIN absences a ON a.student_id = s.student_id
GROUP BY a.student_id
ORDER BY count DESC

这将为您提供所有学生 ID 的列表以及每个学生的缺勤总数。无需运行两个查询。如果您需要有关学生的其他数据,只需将其添加到 SELECT 下的字段列表中:s.student_names.student_age 等...

在此处查看实际效果:SQL Fiddle

而且,你,don't use mysql_*

关于php - sql query cannot read from another table (mysql 表关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com