2017-02-26 3 views
1

このクエリを後続のクエリオブジェクトに変換しようとしていますが、正しい方法は何ですか?内部結合のカウントでクエリを続行

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 

答えて

2

のはFamilyあなたfamilies sequelizeモデルとAnswerあなたanswers sequelizeモデルであり、そしてsequelizeがあなたのSequelizeインスタンスが

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 
}); 

便利なドキュメントへのリンクであると仮定しましょう:

関連する問題