2011-05-17 73 views
2

在我的Web應用程序中,我想顯示我的用戶列表。用戶可以有不同的狀態(類似於FB)。我想顯示每個用戶名下方的最後3個狀態。在Mysql中限制羣組

Dinosaur 
    I'm a dino! 
    I eat meat! 
    I like cows! 
Fish 
    Blub! 
    I don't like dinosaurs! 
    Going for a swim! 

我有以下SQL查詢:

SELECT s.status, u.voornaam, u.achternaam FROM status AS s INNER JOIN sportjefit_user AS u ON s.user = u.id where u.begeleider='53' group by id desc limit 3 

然而,這僅返回結果的前3名,在這種情況下,它只會顯示恐龍的狀態。我想顯示的前3個狀態,但每個用戶。我可以通過group by來做到這一點,並在此處輸入limit,或者我需要多個查詢嗎?而且,如果我確實需要多個查詢,我將如何去實現這個?隨着我的應用程序的增長,用戶數量將不斷增加。

有人可以幫我嗎?

謝謝。

回答

1

我會使用多個查詢這樣的:

select all users 
for each user 
    select last 3 statuses 

使用

SELECT * FROM sportjefit_user 

SELECT status FROM status WHERE userid = ? ORDER BY id DESC LIMIT 3 

多少用戶你期待?如果您試圖在網頁上顯示所有用戶,我會對它們進行分頁。希望這可以幫助。

+0

確實mysql支持'ALL'? – diEcho 2012-07-28 04:59:13