PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

RAILS:Wie alle Objekte abgefragt werden, deren jede Assoziation ein Attribut hat, das nicht null ist

Dies ist ein weiterer Ansatz.

Offer.find_by_sql("SELECT * FROM offers o WHERE NOT EXISTS (SELECT * FROM products WHERE products.offer_id = o.id AND service_id IS NULL)")

Auch wenn die Idee eines ORM darin besteht, dass Sie das SQL abstrahieren, denke ich, dass es bei dieser Art von komplexer Abfrage besser ist, die einfachste Lösung auszuwählen und die Abfrage nicht noch komplizierter zu machen.