在内部连接中用count计数查询

我试图将这个查询转换为查询对象什么是正确的方式做到这一点?

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 

让我们假设Family是你的families续集模型和Answer是你的answers续集模型,而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 }); 

有用的文档链接:

  • sequelize.fn()
  • sequelize.where()
  • sequelize.col()