gpt4 book ai didi

sequelize.js - Sequelize 查询包含和逻辑

转载 作者:行者123 更新时间:2023-12-03 22:27:50 24 4
gpt4 key购买 nike

我有三个表: ArticleTagArticleTag 。一篇文章可以有多个标签,一个标签可以通过 ArticleTag 属于多篇文章。 Tag 有一个 name 属性。

我想查询所有带有标签 tag1 和( tag2tag3 )和( tag4tag5 )的文章。
以下查询不起作用。

Article.findAll({
where: {},
include: [
{
model: Tag,
where: {
[Op.and]: [
{ name: 'tag1' },
{ name: { [Op.or]: ['tag2', 'tag3'] } },
{ name: { [Op.or]: ['tag4', 'tag5'] } },
]
}
}
]
})

最佳答案

我认为 havinggroup_by 会给你预期的结果(也请阅读下面代码中的评论):

Article.findAll({
where: {},
include: [
{
model: Tag,
where: {
[Op.or]: [ { name: 'tag1' }, { name: 'tag2' }] // change from and to or
}
}
]
group : ['articles.id','tags.id'] , // might need to change table name as per yours
having : {
db.sequelize.where(db.sequelize.fn('count', db.sequelize.fn('DISTINCT', db.sequelize.col('articles.id'))),2)
}
});

对于更新的问题,只需更改或阻止 where :
[Op.and]: [
{ name: 'tag1' },
{ name: { [Op.or]: ['tag2', 'tag3'] } },
{ name: { [Op.or]: ['tag4', 'tag5'] } },
]

关于sequelize.js - Sequelize 查询包含和逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49835528/

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