2011-05-17 40 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