2017-02-26 4 views
1

Ich versuche, diese Abfrage zu Sequelize Query Objekt zu konvertieren, was ist der richtige Weg, es zu tun?Sequelize Abfrage mit Anzahl in inneren Join

SELECT families.id, count('answers.familyId') FROM families LEFT JOIN 
answers on families.id = answers.familyId WHERE answers.isActive=1 AND 
answers.answer=1 GROUP BY families.id HAVING COUNT('answers.familyId')>=6 

Antwort

2

Nehmen wir an, dass Family ist Ihr families sequelize Modell und Answer ist Ihr answers sequelize Modell und sequelize ist Ihr Sequelize Instanz

Family.findAll({ 
    attributes: ['*', sequelize.fn('COUNT', sequelize.col('Answers.familyId'))], 
    include: [ 
     { 
      model: Answer, 
      attributes: [], 
      where: { 
       isActive: 1, 
       answer: 1 
      } 
     } 
    ], 
    group: '"Family.id"', 
    having: sequelize.where(sequelize.fn('COUNT', sequelize.col('Answers.familyId')), '>=', 6) 
}).then((families) => { 
    // result 
}); 

Nützliche Dokumentation Links: