gpt4 book ai didi

sql - Sequelize js获取关联模型的计数

转载 作者:行者123 更新时间:2023-12-01 15:45:20 25 4
gpt4 key购买 nike

例如,我有一个discussions 表和一个replies 表。

如何获取每条讨论记录的回复数?

Models.course_discussions.count({
where: { 'course_id': 105 },
include: [
{model: Models.course_discussions_replies, as: 'replies'}
]
})
.then(function (discussions) {
if (!discussions) {
reply(Hapi.error.notFound());
} else {
console.log("91283901230912830812 " , discussions);
}
});

上面的代码转换成下面的查询——

SELECT COUNT(`course_discussions`.`id`) as `count` FROM `course_discussions` LEFT OUTER JOIN `course_discussions_replies` AS `replies` ON `course_discussions`.`id` = `replies`.`discussion_id` WHERE `course_discussions`.`course_id`=105;

上面的代码让我计算了讨论次数。但是我如何计算每个讨论的回复数?

下面的 sql 查询是可以的,但是我该如何写成 sequelize 的方式呢?

SELECT COUNT(  `replies`.`discussion_id` ) AS  `count` 
FROM `course_discussions`
LEFT OUTER JOIN `course_discussions_replies` AS `replies` ON `course_discussions`.`id` = `replies`.`discussion_id`
WHERE `course_discussions`.`course_id` =105

最佳答案

如果您需要讨论和回复计数,.replies.length 应该适合您。

Models.course_discussions.findAll(
where: { 'course_id': 105 },
include: [
{model: Models.course_discussions_replies, as: 'replies'}
]
})
.then(function (discussions) {
// each discussion in discussions will have a
// replies array

discussions[0].repies.length // replies for current discussion
});

关于sql - Sequelize js获取关联模型的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28494418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com