2013-05-21 5 views
1

je le modèle suivant:Comment interroger plusieurs colonnes contre un seul tableau de ids

Message.rb: sender_id, receiver_id, created_at

Je voudrais trouver tous les messages où le sender_id et receiver_id sont les deux dans un tableau d'identifiants [1,4,41,543,312,62,234]. Je voudrais alors regrouper tous les messages par la paire (sender_id & receiver_id) commandé par created_at.

Est-ce la bonne façon d'écrire la requête? Vous cherchez une solution ici ...

Message.where("sender_id IN ? AND receiver_id IN ?", @ids) 

Merci

Répondre

1

Essayez: -

Message.where("sender_id IN (?) AND receiver_id IN (?)", @ids, @ids).order("created_at ASC") 
+0

Merci, mais le fait de ce groupe par sender_id et receiver_id avant l'ordre par created_at? – AnApprentice

+0

Non, il ne regroupera pas vos enregistrements. – Deepika

+1

Essayez Message.where ("sender_id IN (?) ET receiver_id IN (?)", @ids, @ids) .group ("sender_id, receiver_id"). Order ("created_at ASC") – Deepika

Questions connexes