On Tuesday, April 7, 2020 at 11:11:59 AM UTC-7, Marcelo wrote:
>
> Hello,
>
> I'm trying to produce this query with Sequel, that would then run on 
> PostgreSQL:
> SELECT o.id, coalesce(cg.price, o.price) price
> FROM offers o
> LEFT JOIN country_groups cg ON cg.offer_id = o.id AND cg.country_codes @> 
> '{"US"}'
>
>
You can pass a block to left_join:

DB.from{offers.as(:o)}.
  select{[o[:id], coalesce(cg[:price], o[:price]).as(:price)]}.
  left_join(Sequel[:country_groups].as(:cg), 
:offer_id=>:id){Sequel[:cg][:country_codes].pg_array.contains(["US"])}

SQL:

SELECT "o"."id", coalesce("cg"."price", "o"."price") AS "price"
FROM "offers" AS "o"
LEFT JOIN "country_groups" AS "cg" ON (("cg"."offer_id" = "o"."id") AND 
("cg"."country_codes" @> ARRAY['US']))
 
Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sequel-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sequel-talk/bf8f503c-d05b-4830-a8ce-b5d4f1ab87fa%40googlegroups.com.

Reply via email to