2011-03-29 78 views
0

幾天前,我發佈了一個關於從查詢數量最少的數據庫獲取學生成績結果的問題。 我需要知道的是以下哪種方法更好?哪種方法更好地顯示來自數據庫的大量結果?

情況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 
    
    } 
    

情況B

  1. 查詢所有學生從數據庫
  2. 然後使用以上學生的查詢結果 「IN」 操作符像SELECT marks FROM result WHERE student_id IN (23,34,23,343,25,67,65,...)
  3. 然後使用foreach語句,根據需要處理結果。
  4. 這樣,我們有100個學生,我們只需要查詢數據庫2次。

我需要知道以上兩種情況哪一種更好?

感謝

回答

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

這應該這樣做。當然,你的第二個選擇似乎更好。

0

豈不是:

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

join reference

+0

是的,這也是一種選擇,但我我的結構表和,我顯示數據的方式不與JOIN的工作方式。 – 2011-03-29 03:50:55

相關問題