2016-08-21 3 views
1

Ich möchte eine oder Bedingung über mehrere Tabellen mit Sequelizejs hinzufügen. Mein Problem ist, dass ich nicht weiß, wie man die ODER-Operatoren ($ oder und Sequelize.or) über mehr als eine Tabelle verwendet.Sequelize: Or-Bedingung über mehrere Tabellen

Lassen Sie uns sagen, dass ich die folgende SQL-Abfrage implementieren möchten:

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

Ich würde nur die erste Bedingung mit sequelize wie folgt implementieren:

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

Und nur die zweite Bedingung wie folgt aus:

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

Aber wie kombiniere ich beide Abfragen in die, die ich will?

Antwort

3

Sie können ähnliche

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

Dank für akzeptierte Antwort und froh, wenn Sie wie die Antwort abstimmen zu hören –

Verwandte Themen