在Mysql中限制分组

时间:2011-05-17 10:24:46

标签: mysql sql

在我的网络应用程序中,我想显示我的用户列表。用户可以具有不同的状态(类似FB)。我想在每个用户名下面显示最后3个状态。

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 个答案:

答案 0 :(得分: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

您预计会有多少用户?如果您尝试在页面上显示所有用户,我会对它们进行分页。希望这会有所帮助。