sql >> Base de Datos >  >> RDS >> PostgreSQL

Rails incluye consultas con condiciones que no devuelven todos los resultados de la tabla de la izquierda

Si agrega un WHERE condición en las columnas de la derecha tabla después de LEFT JOIN , lo fuerza a actuar como un INNER JOIN .

Solución

Tire de la expresión hacia arriba en la condición de LEFT JOIN .
Según la página del manual que se citó a sí mismo :

Y:

Es posible que hayas leído mal esa oración.

Esto deberías hacer lo que quieras:

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

No soy un experto en Ruby, pero derivando esto del manual aquí .
No estoy seguro de cómo escapar de las comillas simples, así que cambié a cotizaciones en dólares.