ORDER BY et LIMIT dans le GROUPE PAR

Je vais essayer d'obtenir un sous-ensemble d'enregistrements dans un GROUPE, j'ai vu beaucoup de fou solutions là-bas, mais ils semblent tout simplement trop compliqué, est-il un moyen plus efficace pour ce faire.

SELECT user_id, GROUP_CONCAT(item_id ORDER BY `timestamp`) AS items 
FROM wb_user_book_current_item GROUP BY user_id

Afin de me rendre tous les éléments en cours pour tous les utilisateurs, ce qui est correct jusqu'à présent. Mais je veux seulement les dix éléments les plus récents. L'ajout de ORDER BY à la GROUP_CONCAT aide, mais ça ne fonctionne toujours pas me donner les dix derniers dossiers.

MODIFIER

Si je fais quelque chose de ce genre et le code de la user_id alors je peut obtenir les résultats que je veux pour qu'un utilisateur, le problème est de combiner de sorte que je n'ai pas besoin de coder en dur le user_id et peuvent, par exemple, juste obtenir TOUS utilisateurs dix derniers articles

SELECT GROUP_CONCAT(cp2.item_id) AS items 
FROM (SELECT cp.user_id, cp.item_id 
      FROM wb_user_book_current_item cp 
      WHERE cp.user_id=1 ORDER BY cp.`timestamp` 
      LIMIT 10) AS cp2 
GROUP BY cp2.user_id
Peut-être que vous avez à mettre de LIMITE de 0,10 à la fin?

OriginalL'auteur Rob | 2012-10-26