sar*_*man 4 node.js express sequelize.js
我正在尝试将此查询转换为序列化查询对象,正确的方法是什么?
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
Run Code Online (Sandbox Code Playgroud)
假设这Family是您的familiessequelize模型,Answer是您的answerssequelize模型,并且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
});
Run Code Online (Sandbox Code Playgroud)
有用的文档链接: