sql >> Databasteknik >  >> RDS >> PostgreSQL

Rails inkluderar en fråga med villkor som inte returnerar alla resultat från den vänstra tabellen

Om du lägger till en WHERE skick på kolumner till höger tabell efter en LEFT JOIN , tvingar du den att fungera som en INNER JOIN .

Lösning

Dra uttrycket upp i villkoret till LEFT JOIN .
Enligt manualsidan citerade dig själv :

Och:

Du kanske har läst den meningen fel.

Detta ska göra vad du vill:

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

Jag är ingen Ruby-expert, men härleder denna från manualen här .
Osäker på hur man undviker enstaka citattecken, så jag bytte till dollarnotering istället.




  1. Laravel 5:Överträdelse av integritetsbegränsning:1452 Kan inte lägga till eller uppdatera en underordnad rad:en främmande nyckel-begränsning misslyckas

  2. Orsakas av:java.sql.SQLException:Teckenkodningen 'utf8mb4' stöds inte

  3. MYSQL join results set raderade resultat under IN () i var klausul?

  4. mysql order by with union verkar inte fungera