2013-09-22 16 views
-1

奧凱這個羣體是笏我想整理和MySQL的不工作

數據庫

id | fromm | ontvanger | date | msg | gelezen 
-------------------------------------------------- 
1 | kees | marc  | time_stamp | 0 
1 | hans | marc  | time_stamp | 1 
3 | kees | marc  | time_stamp | 0 
5 | selma | marc  | time_stamp | 1 
6 | kees | marc  | time_stamp | 0 
7 | kees | marc  | time_stamp | 0 

這是笏我想GROUP BY弗洛姆

1 | hans | marc  | time_stamp | 1 
3 | kees | marc  | time_stamp | 0 
5 | selma | marc  | time_stamp | 1 

$result = mysql_query("SELECT * FROM berichten where ontvanger = '$session->username' 
GROUP BY fromm ORDER BY date DESC 
"); 

顯示的最新記錄和gelezen是0首先

+0

嗯發佈所需的結果。 – Mihai

+0

結果顯示漢斯kees和selma的第一篇文章。我想要最新的紀錄 –

回答

1
SELECT a.* 
FROM berichten a 
     INNER JOIN 
     (
      SELECT fromm, MAX(date) date 
      FROM berichten 
      GROUP BY fromm 
     ) b ON a.fromm = b.fromm AND 
       a.date = b.date 
WHERE a.ontvanger = '$session->username' 
ORDER BY (gelezen = 0) DESC, id 

su bquery可以讓你獲得最新的date每個fromm。然後將它的結果加回到原始表上以獲取列的其他值。

(gelezen = 0)產生一個布爾值,如果它是真的將給1否則0。由於您想根據gelezen = 0對行進行排序,因此應用布爾算術結果的降序。