Ich habe ein Datenbankmodell wie folgt:
%Vor% Was ich will, ist Abfrage aller posts
für einen bestimmten Benutzer, für den er nicht schon gewählt hat.
Ich habe es so versucht:
%Vor% Dabei ist 1
nur eine Beispielbenutzer-ID.
Das Problem ist, dass diese Abfrage scheinbar alle posts
abruft, die mindestens eine Stimme haben, wobei user_id
nicht 1
ist.
Da jedoch mehr als ein Nutzer für diese Beiträge abstimmen wird, sobald alle mehr als eine Stimme haben, erhalten alle Nutzer sofort alle Beiträge.
Ich weiß nicht, ob joins
der richtige Ansatz ist, aber auf Englisch lautet meine Abfrage:
Gib mir alle Beiträge, bei denen keine der Stimmen eine user_id von 1 hat
Ist es möglich, nur die posts
für einen Benutzer abzurufen, für den er noch nicht gewählt hat?
BEARBEITEN:
Mein Datenbankschema der obigen drei Tabellen:
Stimmen:
%Vor%Beiträge:
%Vor%Benutzer:
%Vor% Ich habe ein Beispiel wie das, was Sie beschrieben haben, erstellt. Ich habe einen Benutzer, ID '1', und fünf Beiträge, IDs '1' - '5' erstellt. Dann habe ich Likes für die Posts '2' und '4' erstellt. Die Syntax in der anderen Antwort funktionierte nicht, sie beschwerte sich über die not
. Das Folgende funktioniert, um die Beiträge (1, 3, 5) auszuwählen, die vom Benutzer '1'
Tags und Links ruby mysql ruby-on-rails activerecord rails-activerecord