PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Rails inclui consulta com condições não retornando todos os resultados da tabela esquerda


Se você adicionar um WHERE condição nas colunas da direita tabela após um LEFT JOIN , você o força a agir como um INNER JOIN .

Solução


Puxe a expressão para a condição para o LEFT JOIN .
De acordo com a página do manual você citou você mesmo :

E:

Você pode ter interpretado mal essa frase.

Isso deve fazer o que quiser:
Post.joins('LEFT OUTER JOIN images ON images.post_id = posts.id
                                  AND images.service_name = $$acme$$')

Não sou especialista em Ruby, mas derivou isso do manual aqui .
Não tenho certeza de como escapar das aspas simples, então mudei para as cotações do dólar.