哪种方法更好地显示数据库的大结果?

时间:2011-03-29 03:06:46

标签: mysql

几天前,我发布了一个问题,即用最少的查询数从数据库中获取学生成绩。 我需要知道的是以下哪种方法更好?

案例A

  1. 查询数据库中的所有学生
  2. 然后对于 EACH 学生,查询数据库中的结果
  3. 这样,如果我们有100名学生,我们需要100次查询数据库。
  4. 示例:

    $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
    
    }
    
  5. 案例B

    1. 查询数据库中的所有学生
    2. 然后使用像SELECT marks FROM result WHERE student_id IN (23,34,23,343,25,67,65,...)
    3. 这样的“IN”运算符查询上述学生的结果
    4. 然后使用foreach语句,根据需要处理结果。
    5. 这样,我们有100名学生,我们只需要查询数据库2次。
    6. 我需要知道以上哪两种情况更好?

      由于

2 个答案:

答案 0 :(得分:2)

select * from students join marks on students.student_id = marks.student_id

这应该这样做。当然,你的第二种选择似乎更好。

答案 1 :(得分:0)

不会是:

SELECT marks FROM result JOIN students ON students.student_id = result.student_id;

join reference