J'ai un modèle d'utilisateur qui a des amis (User.friends avec une table de jointure user_id/friend_id appelée suivante). Chaque utilisateur a des événements (la table des événements a une colonne user_id).Demande SQL pour trouver les n derniers enregistrements de chacun des amis d'un utilisateur
Pour un flux d'activité, je veux obtenir un tableau avec les 20 derniers événements des amis de l'utilisateur. En ce moment, j'appelle les 20 derniers événements pour chaque ami, en triant tout par date et en gardant simplement les 20 derniers événements.
Comment puis-je faire cela directement dans la base de données de sorte que je n'ai besoin que d'une requête au lieu d'une par ami?
Y a-t-il un moyen de le faire directement avec Rails? Ou devrais-je utiliser une requête SQL?
Merci,
Kevin
Oui, "limite 20" fonctionnera également dans PostgreSQL. –
Super! Et disons que je ne veux pas un type particulier d'événements qui est spécifié dans ses attributs, quelque chose comme ça fonctionnerait? "select Events.Summary des événements où Events.kind! = Not_that_kind rejoindre Followings ..." –
Vous devez mettre cela dans la clause WHERE. par exemple. 'où Followings.User_Id = @User_Id et Events.kind <> not_that_kind'. –