我正在尝试编写这个原始查询
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 .
我在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不兼容“
我无法理解我做错了什么 .
1 回答
请阅读MySQL Handling of GROUP BY .