给定用户表和评级表
如何从用户表中查询评分表中没有任何评分记录的所有用户记录使用 Sequelize include 子句
注意:Sequelize 版本 5.x
提前致谢
最佳答案
您可以通过两种方式执行此操作,具体取决于模型的定义方式。
1. 使用 Sequelize Eager Loading 获取所有用户
以及评分
。然后过滤用户没有任何评分的地方。
const users = Users.findAll({
include: [Ratings]
});
const filteredUsers = users.filter(user => user.ratings.length === 0);
2. 从 Ratings
表中获取所有 userIds
,然后使用以下命令将这些 userIds
传递到 where 子句notIn
Sequelize operator
const ratings = Ratings.findAll({
attributes: ["userId"],
group: ["userId"]
});
const userIds = ratings.map(rating => rating.userId);
const filteredUsers = Users.findAll({
where: {
userId: { [Op.notIn]: userIds }
}
});
关于mysql - 使用 Sequelize include 子句查询另一个表中没有条目的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58887296/