2016-08-21 4 views
1

sequelizejsを使用して複数の表に条件を追加したいとします。 私の問題は、演算子($やSequelize.or)を複数のテーブルに渡って使用する方法がわかりません。このようなSequelize:複数の表にわたる条件

A.findAll({ 
    include: [{ model: B, where: { x: 7 } }] 
}) 

そして唯一の第二の条件:

select * from A as a, B as b, C as c where (A.b_id = b.id and b.x = 7) or (A.c_id = C.id and c.z = "test") 

は、私はこのようなsequelizeを持つ唯一の最初の条件を実装します:

のは、私は次のSQLクエリを実装したいとしましょう:

A.findAll({ 
    include: [{ model: C, where: { z: "test" } }] 
}) 

しかし、両方のクエリをどのように組み合わせてもらえますか?

答えて

3

あなたの答えのような場合は投票次第、受け入れ答えと聞いて喜んでこの

A.findAll({ 
    include: [{model: B},{model: C}], 
    where: { 
    '$or':{ 
     '$b.x$': 7, 
     '$c.z$': "test" 
    } 
    }); 
+0

おかげのような何かを行うことができます –