Wie man eine NOT IN Abfrage mit ActiveRecord / Rails ausdrückt?

Einfach zu aktualisieren, da es scheint, eine Menge Leute kommen, um diese, wenn Sie mit Rails 4 Blick auf die Antworten werfen, die von Lê Trung` und VinniVidiVicci.

Topic.where.not(forum_id:@forums.map(&:id))

Topic.where(published:true).where.not(forum_id:@forums.map(&:id))

Ich hoffe es gibt eine einfache Lösung, die nicht die find_by_sqlwenn nicht, dann denke ich, die arbeiten müssen.

Fand ich dieser Artikel welche Referenzen diese:

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })

das ist das gleiche wie

SELECT * FROM topics WHERE forum_id IN (<@forum ids>)

Frage ich mich, ob es eine Möglichkeit gibt, das zu tun NOT IN mit, wie:

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)

InformationsquelleAutor der Frage Toby Joiner | 2010-11-29

Schreibe einen Kommentar