2014-03-19 65 views
0

這裏是我的表寄存器:不顯示重複的結果

id name   student_id date  presence absence_note Tusername 
50 hassimkhan 1112815 2014-03-08 P      saahir 
56 Karishma kods 1119112 2014-03-08 P      saahir 
58 Karishma kods 1119112 2014-03-09 P      saahir   
60 hassimkhan 1112815 2014-03-09 A      saahir 

這裏是我的循環來顯示結果:

$retrieve = mysql_query("SELECT DISTINCT(student_id),presence FROM register"); 
    while($row = mysql_fetch_array($retrieve))   
     { 
      echo $row['student_id']; 
       } 

我知道如ID 56和58 student_id數據: 1112815記錄在某種方式上有所不同,但我只想將它顯示爲例如這些數據的結果:

1112815 
1119112 

有什麼幫助嗎?

+1

SELECT student_id數據,存在從寄存器GROUP BY student_id數據 – chofer

+0

你是在這兩'student_id'和'presence'選擇DISTINCT 。在你的例子中,這將產生id爲1112815的兩個不同的行,因爲存在值不同。你也不應該認爲你的語法不正確,它應該是'SELECT DISTINCT student_id,presence ......'你沒有解決你想用'presence'的不同值做什麼。正如現在的情況,結果集中的記錄不是重複的。 –

+0

強制警告不要使用mysql_'方法。 – Smandoli

回答

1

嘗試GROUP荷蘭國際集團,而不是:

SELECT student_id, presence FROM register GROUP BY student_id

(未經測試)

+0

+1。但是它可能更直接,更容易理解,而忽略了'CONCAT()'函數;只是'SELECT student_id ...' – Smandoli

+0

你不應該在這裏,你會得到不可預知的結果存在字段值。 –

+0

邁克,雖然我同意這一點,但也許他只是想要一個彙總的學生ID列表 - 我們不一定排除這一點。 –

0
retrieve = mysql_query("SELECT student_id,presence FROM register GROUP BY student_id"); 
while($row = mysql_fetch_array($retrieve))   
{ 
    echo $row['student_id']; 
} 
+0

你不應該在這裏,你會得到'存在'字段值的不可預知的結果。 –

+0

@MikeBrant是的,我知道。但他的要求不是重複student_id。如果存在多個具有相同student_id的行,則其他列的值不需要來自哪一行 – rakeshjain

+1

當然,但可以肯定的是,他在他的選擇中包含「presence」。如果他只想要學生id的清單,那麼他可以很容易地執行'SELECT DISTINCT student_id FROM register',並且完全不需要'GROUP BY'。 –