【发布时间】:2018-02-11 02:27:51
【问题描述】:
我正在尝试编写这个原始查询
SELECT users.status,count(`users`.`id`) AS `count`
FROM `users` AS `users`
INNER JOIN `organization_entries` AS `organizationEntries` ON `users`.`id` = `organizationEntries`.`user_id`
AND `organizationEntries`.`organization_id` = '1'
AND `organizationEntries`.`type` = '001'
group by users.status;
在续集中。
我在 Sequelize 中这样写了这个查询
db.users
.findAll({
attributes: [
'status',
[db.sequelize.fn('COUNT', 'users.id'), 'entries']
],
include: {
model: db.organizationEntries,
where: {
organization_id: req.params.org_id,
type: '001',
},
},
group: ['users.status']
}).then(c => {
console.log(c);
let active_users = {
active_users: c,
}
return res.send(active_users);
})
.catch(next);
但是当我运行这个查询时,我得到了这个错误
代码 "ER_WRONG_FIELD_WITH_GROUP" errno 1055 sqlState "42000"
sqlMessage "SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且 包含非聚合列“ontro.users.id”,它不是 功能上依赖于 GROUP BY 子句中的列;这是 不兼容 sql_mode=only_full_group_by"
我无法理解我做错了什么。
【问题讨论】:
标签: node.js sequelize.js