PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rails include query con condizioni che non restituiscono tutti i risultati dalla tabella di sinistra

Se aggiungi un WHERE condizione sulle colonne di destra tabella dopo un LEFT JOIN , lo costringi a comportarsi come un INNER JOIN .

Soluzione

Estrarre l'espressione nella condizione di LEFT JOIN .
Secondo la pagina del manuale si hai citato te stesso :

E:

Potresti aver letto male quella frase.

Questo dovrebbe fare quello che vuoi:

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

Non sono un esperto di Ruby, ma sto derivando questo dal manuale qui .
Non sono sicuro di come evitare le virgolette singole, quindi sono passato alle virgolette in dollari.