2016-08-21 84 views
1

我想用sequelizejs在多個表上添加或條件。 我的問題是,我不知道如何在多個表上使用或運算符($或Sequelize.or)。Sequelize:在多個表上的Or-條件

比方說,我要實現以下SQL查詢:

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") 

我將只實現與sequ​​elize第一個條件是這樣的:

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

而且,只有第二個條件是這樣的:

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

感謝接受的答案,並高興地聽到,同比增長投票 –