gpt4 book ai didi

node.js - Sequelize - 如何从一个表中获取与另一表不关联的条目

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:07 24 4
gpt4 key购买 nike

我使用 Sequelize 为用户评分帖子定义了三个实体:

var User = sequelize.define('User', {
email: {
type: Sequelize.STRING,
primaryKey: true
}
});

var Post = sequelize.define('Post', {
link: {
type: Sequelize.STRING,
primaryKey: true
}
});

var Rating = sequelize.define('Rating', {
result: Sequelize.STRING
});

Rating.belongsTo(Post);
Post.hasMany(Rating);

Rating.belongsTo(User);
User.hasMany(Rating);

用户可以对多个帖子进行评分。每个评级只属于一个用户和一个帖子。

现在我想查询给定用户所有尚未被该用户评分的帖子。我尝试了一千种方法但没有成功。知道如何在 Sequelize 中实现这一点吗?非常感谢!

最佳答案

有两种方法,要么在 Sequelize 中使用原始查询,要么通过 Sequelize 查询 -

原始 -

return Db.sequelize.query("SELECT * FROM Post P WHERE (P.id NOT IN (SELECT postId FROM Ratings R WHERE R.userId="+userId+")) ",{ type: Sequelize.QueryTypes.SELECT });

Sequelize -

return Post.findAll({
where: {
Sequelize.literal("(posts.id NOT IN (SELECT R.postId FROM Rating R WHERE R.userId="+userId+"))")
}
});

关于node.js - Sequelize - 如何从一个表中获取与另一表不关联的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54630747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com