gpt4 book ai didi

javascript - 连接中的 Sequelize 或条件

转载 作者:行者123 更新时间:2023-12-03 22:33:01 28 4
gpt4 key购买 nike

我正在尝试使用带有自定义连接条件的 Sequelize ORM 进行查询。
有一个例子:

User.findAll({include: [{model: Post, where: {active: true}}]
这是连接条件的结果:
INNER JOIN `posts` AS `post` ON `users`.`id` = `post`.`user_id` AND `post`.`active`=true
我想要做的是将 AND 条件替换为 OR 并观察如下内容:
INNER JOIN `posts` AS `post` ON `users`.`id` = `post`.`user_id` OR `post`.`active`=true
我不知道是否有办法做到这一点。

最佳答案

您不能使用 OR 向 JOIN 条件添加条件。您只能添加额外的外部条件,您可以在其中使用 OR。

User.findAll({
where: {
[Op.or]: [
{ '$Post.somefield$': sequelize.col('some_user_field') },
{ '$Post.someotherfield$': sequelize.col('some_other_user_field') }
]
},
include: [{
model: Post
}
]})
这个查询在 SQL 中是这样的:
SELECT * FROM USERS as `users`
INNER JOIN `posts` AS `post` ON `users`.`id` = `post`.`user_id`
WHERE
`post`.`somefield`=`users`.`some_user_field`
OR
`post`.`someotherfield`=`users`.`some_other_user_field`

关于javascript - 连接中的 Sequelize 或条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65008752/

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