Ограничение на Группу в Mysql - PullRequest
2 голосов
/ 17 мая 2011

В моем веб-приложении я хотел бы показать список моих пользователей.Пользователи могут иметь разные статусы (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 Ответ

1 голос
/ 17 мая 2011

Я бы использовал несколько запросов, как это:

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

Сколько пользователей вы ожидаете? Если вы пытаетесь показать всех пользователей на странице, я бы разбил их на страницы. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...