2017-02-26 61 views
1

我想將此查詢轉換爲sequelize查詢對象什麼是正確的方式做到這一點?在內部聯接計數查詢與計數

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

有用的文檔鏈接: