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

Rails inkluderer forespørgsel med betingelser, der ikke returnerer alle resultater fra venstre tabel

Hvis du tilføjer en WHERE tilstand på kolonner til højre tabel efter en LEFT JOIN , tvinger du den til at fungere som en INNER JOIN .

Løsning

Træk udtrykket op i betingelsen til LEFT JOIN .
Ifølge manualsiden kan du citerede dig selv :

Og:

Du har muligvis læst den sætning forkert.

Dette skal gøre, hvad du vil:

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

Jeg er ingen Ruby-ekspert, men jeg udleder denne fra manualen her .
Ikke sikker på, hvordan jeg undslipper enkelte anførselstegn, så jeg skiftede til dollar-citering i stedet.




  1. cursor.execute(INSERT INTO im_entry.test (+entrym+) VALUES ('+p+');)

  2. Postgres SSLMode-værdi kræver ugyldig, når SSL-understøttelse ikke er kompileret ved hjælp af udenlandsk dataindpakning

  3. MySQL - Sådan vælger du rækker med maks. værdi af et felt

  4. Start og udfyldning af en Postgres-container i Docker