PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Rails inclut une requête avec des conditions ne renvoyant pas tous les résultats de la table de gauche

Si vous ajoutez un WHERE condition sur les colonnes de droite table après un LEFT JOIN , vous le forcez à agir comme un INNER JOIN .

Solution

Tirez l'expression vers le haut dans la condition jusqu'au LEFT JOIN .
Selon la page de manuel que vous cité vous-même :

Et :

Vous avez peut-être mal lu cette phrase.

Ceci devriez faire ce que vous voulez :

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

Je ne suis pas un expert Ruby, mais je tire ceci du manuel ici .
Je ne sais pas comment échapper les guillemets simples, j'ai donc opté pour les guillemets en dollars à la place.