This is the full query: (I forgot to add second OR in first post):
SELECT
"stacks".*
FROM "stacks"
INNER JOIN "apps"
ON ("apps"."id" = "stacks"."app_id")
WHERE (((("user_id" = 1)
AND ("channel_id" IS NULL))
OR (("user_id" = 1)
AND ("channel_id" = 5)))
AND ("apps"."properties" IS NULL))
On Wednesday, November 20, 2019 at 2:03:20 AM UTC+3, xura wrote:
>
> SELECT
> "stacks".*
> FROM "stacks"
> INNER JOIN "apps"
> ON ("apps"."id" = "stacks"."app_id")
> WHERE (((("user_id" = 1)
> AND ("channel_id" IS NULL)))
> AND ("apps"."properties" IS NULL))
>
> Hi Jeremy,
>
>
> In this query, *user_id* is ambiguous. It exists on both table. How can i
> make sure its targeted for stacks but not apps?
>
> I use this method for multiple AND and ORs:
>
> params = [{
> user_id: @user.id,
> channel_id: @channel.id,
> }]
> params_or = [{
> user_id: @user.id,
> channel_id: nil,
> }]
>
>
> And my ruby code is like:
>
> Stacks.select { stacks.* }.join_table(:inner, :apps, id: :app_id)
> .where { (Sequel.&(*params)) | (Sequel.&(*params_or)) }
> .where { (apps[:properties] =~ nil) }
>
> On this case I tried to append double underscore with table name but it
> didn't worked. (*stacks__user_id*)
>
> Thanks!
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sequel-talk/2594f32e-1b7f-4e35-b912-8cb74e63ac2d%40googlegroups.com.