sql >> Database >  >> RDS >> PostgreSQL

Rails bevat een zoekopdracht met voorwaarden die niet alle resultaten uit de linkertabel retourneren

Als u een WHERE . toevoegt voorwaarde op kolommen van de rechter tabel na een LEFT JOIN , dwingt u het om zich te gedragen als een INNER JOIN .

Oplossing

Trek de uitdrukking omhoog in de voorwaarde naar de LEFT JOIN .
Volgens de handleidingpagina die u heb jezelf geciteerd :

En:

Misschien heb je die zin verkeerd gelezen.

Dit moet doen wat je wilt:

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

Ik ben geen Ruby-expert, maar deze uit de handleiding hier .
Ik weet niet zeker hoe ik aan enkele aanhalingstekens moet ontsnappen, dus schakelde ik over naar aanhalingstekens in dollars.




  1. Kolom wijzigen versus kolom wijzigen

  2. MySql selecteer alle tabellen met meerdere specifieke kolommen

  3. MySQL-prestaties:MySQL versus MariaDB

  4. SQL geneste volgorde op?