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

Rails enthält Abfragen mit Bedingungen, die nicht alle Ergebnisse aus der linken Tabelle zurückgeben

Wenn Sie ein WHERE hinzufügen Bedingung auf Spalten von rechts Tabelle nach einem LEFT JOIN , zwingen Sie es, sich wie ein INNER JOIN zu verhalten .

Lösung

Ziehen Sie den Ausdruck in die Bedingung zum LEFT JOIN .
Laut manual page you selbst zitiert :

Und:

Möglicherweise haben Sie diesen Satz falsch gelesen.

Das sollte tun, was Sie wollen:

Post.joins('LEFT OUTER JOIN images ON images.post_id = posts.id
                                  AND images.service_name = $$acme$$')

Ich bin kein Ruby-Experte, aber ich leite dies aus dem Handbuch hier ab .
Ich bin mir nicht sicher, wie ich einfache Anführungszeichen maskieren kann, also habe ich stattdessen auf Dollarnotierungen umgestellt.