Sequelize findAll其中列值与表中的至少一个其他项相同
我目前有以下查询,它获取id =某个值的所有内容,但我需要它才能获得只有列(称为Uid)值的项在表中出现多次。
基本上我需要从下面的查询结果中筛选出具有唯一Uid列值的项目
models.table.findAll({
where:{
id: req.params.id
}
})
回答如下:
所以我相信你正在寻找的SQL查询
SELECT id, uid, count(*) FROM table
WHERE id = :id
GROUP BY id, uid
HAVING count(uid) > 1;
在Sequelize中它将是:
models.table.findAll({
where: { id: req.params.id },
group: ['id', 'uid'],
having: [sequelize.literal('count(?) > ?)', 'uid', 1]
})
不完全确定这是否是Sequelize的正确语法。另请参阅sequelize.fn()和sequelize.col()。