Where condition for joined table in Sequelize ORM
<p>I want to get query like this with sequelize ORM: </p>

<pre><code>SELECT "A".*,      
FROM "A" 
LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id"
LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id"
WHERE ("B"."userId" = '100'
       OR "C"."userId" = '100')
</code></pre>

<p>The problem is that sequelise not letting me to reference "B" or "C" table in where clause. Following code</p>

<pre><code>A.findAll({
    include: [{
        model: B,
        where: {
            userId: 100
        },
        required: false

    }, {
        model: C,
        where: {
            userId: 100
        },
        required: false
    }]
] 
</code></pre>

<p>gives me</p>

<pre><code>SELECT "A".*,      
FROM "A" 
LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id" AND "B"."userId" = 100
LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id" AND "C"."userId" = 100
</code></pre>

<p>which is completely different query, and result of</p>

<pre><code>A.findAll({
    where: {
        $or: [
            {'"B"."userId"' : 100},
            {'"C"."userId"' : 100}
        ]
    },
    include: [{
        model: B,
        required: false

    }, {
        model: C,
        required: false
    }]
] 
</code></pre>

<p>is no even a valid query:</p>

<pre><code>SELECT "A".*,      
FROM "A" 
LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id"
LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id"
WHERE ("A"."B.userId" = '100'
       OR "A"."C.userId" = '100')
</code></pre>

<p>Is first query even possible with sequelize, or I should just stick to raw queries? </p>