我在Sequelize中尝试调用以下SQL函数。
SELECT messID
FROM users
WHERE userID in userIds
GROUP BY messID
having count(distinct userID) = userIds.length
userIds
是一个id数组,到目前为止,我有以下内容,但最后一行遇到了问题。
Users.findNewID = async function (userIds) {
const newID = await Users.findOne({
where: {
[Op.contains]: userIds
group: messID,
return newID;
};
但是我不确定如何在
having
行上使用distinct。
发布于 2021-09-05 09:59:23
Sequelize不是关于复杂的聚合查询,它主要是关于使用映射到表的模型(这就是为什么它被称为ORM)。
只需使用普通的SQL-query,参数如下:
const newIDResult = await sequelize.query(`
SELECT messID
FROM users
WHERE userID in $userIds
GROUP BY messID
having count(distinct userID) = $userIdsLength