Я попытался создать структуру БД для системы голосования, используя секвелизацию, как показано ниже:
PollAnswer = sequelize.define('PollAnswer', {answer: DataTypes.STRING});
PollQuestion = sequelize.define('PollQuestion', {question: DataTypes.STRING});
VotingHistory = sequelize.define('VotingHistory', {});
User = sequelize.define('User', {name: DataTypes.STRING});
PollAnswer.belongsTo(PollQuestion); //every question has many answers
VotingHistory.belongsTo(PollQuestion);
VotingHistory.belongsTo(PollAnswer);
VotingHistory.belongsTo(User);
Я хочу написать запрос, чтобы получить ответы на конкретный c вопрос и их голосование. подсчитывает в таблице VotingHistory , я сделал это с помощью следующей команды sql, и ответ был таким, как я ожидал:
select count(VotingHistory.PollAnswerId), PollAnswer.answer from PollAnswers
left join VotingHistories on PollAnswer.id = VotingHistory.PollAnswerId group by PollAnswers.id
ожидаемый ответ:
answer count
------------
ans1 10
ass2 2
ans3 0
Но при использовании sequelize для запросите то же самое, как показано ниже:
VotingHistory.findAll({
where:{PollQuestionId: req.params.poll},
attributes:[[sequelize.fn('count', sequelize.col('PollAnswerId')), 'count']],
group:['PollAnswerId'],
include:[{
model:PollAnswer,
attributes:['id','answer']
}]
})
он просто возвращает это:
answer count
------------
ans1 10
ass2 2
мой вопрос: как я могу получить ожидаемый ответ, который выше sql команда запрос возвращает, используя sequelize?