【发布时间】:2011-03-29 20:43:39
【问题描述】:
几天前,我发布了一个关于从数据库中以最少查询次数获取学生分数结果的问题。 我需要知道的是以下哪种方法更好?
案例A
- 从数据库中查询所有学生
- 然后对于EACH学生,从数据库中查询结果
- 这样,如果我们有 100 个学生,我们需要查询数据库 100 次。
-
例子:
$Students = mysql_query(SELECT student_id, student_name FROM STUDENTS WHERE class_id = 2); while($student = mysql_fetch_assoc($Students) { $Result = mysql_query("SELECT marks FROM result WHERE student_id = ".$student['student_id']); // Process result }
案例 B
- 从数据库中查询所有学生
- 然后使用
SELECT marks FROM result WHERE student_id IN (23,34,23,343,25,67,65,...)等“IN”运算符查询以上学生的结果 - 然后使用 foreach 语句,根据需要处理结果。
- 这样,我们有 100 个学生,我们只需要查询数据库 2 次。
我需要知道以上两种情况哪个更好?
谢谢
【问题讨论】:
标签: mysql