sequelize版本:4.22.6,mysqlversion:5.7.8 i 要在查询执行中的attibutes(在\u user\u count\u处)中进行“hasmany”关联(companyuser)计数吗
/**
* Company user associate with Company with belongsTo relation
* /
`CompanyUser.belongsTo(Company, { foreignKey: 'company_id', targetKey: 'id'});`
/**
* Company associate with Company user with hasMany relation
* /
`Company.hasMany(CompanyUser, { foreignKey: 'company_id', sourceKey: 'id'});`
`return Company.findAll({
attributes: [
'id', 'title', 'is_enabled', '_user_count_'
]
include: [
{
model: sqConn.CompanyUser,
attributes: ['id'],
},
{
model: sqConn.CompanyLogo,
attributes:['file_object'],
}
],
}).then(function(model) {
return sequelize.Promise.resolve(model);
}).catch(function(err) {
return sequelize.Promise.reject(err);
});`
使用左连接的简单mysql查询可以很好地工作并给出计数。
2条答案
按热度按时间lvmkulzt1#
你可以用
sequelize.fn
,尝试运行以下查询:7jmck4yq2#
这对我很有用:
关联:
后m:n类别
帖子1:n评论
post n:1个用户
请注意这部分
'comment.id'
不是'comments.id'
.如果你使用
'comments.id'
它会为您抛出以下错误:SequelizeDatabaseError: missing FROM-clause entry for table "comments"
我的模型-更新:和评论