【问题标题】:Sequelize many-to-many relationship: How to get result based on AND condition?续集多对多关系:如何根据 AND 条件获得结果?
【发布时间】:2021-09-28 16:58:16
【问题描述】:

我希望有人能帮我解决这个问题,或者如果我弄错了,可以提供替代方案。 我有两个表之间的多对多关系。

为了简单起见,假设有EventsUsersEventUsers,其中EventUsers 表有eventIduserId

如何根据用户应明确为abc@test.comcde@test.com 的条件实现Events 表中的所有事件。

我尝试过这样做,但无济于事。

await Event.findAll({
    include: [
      {
        model: User,
        attributes: ['email'],
        through: {
          model: EventUsers,
          attributes: [],
        },
        where: {
          [Op.and]: [{ email: 'abc@test.com' }, { email: 'cde@test.com' }],
        },
      },
    ],
  });
Event table
------------
id | title
------------
1  | lorem
2  | ipsum


User table
------------
id | email
------------
1  | abc@test.com
2  | cde@test.com
3  | efg@test.com


EventUsers table
------------
eventId| userId
------------
1  | 1
1  | 2
2  | 1
2  | 2
2  | 3

这必须给我一个 id 为 1 的事件,其中电子邮件是 abc@test.comcde@test.com

【问题讨论】:

    标签: javascript sql node.js postgresql sequelize.js


    【解决方案1】:

    在 where 条件下尝试“Op.or”而不是“Op.and”。

    【讨论】:

    • 试过了,但是这将返回所有实例,即使是一封电子邮件也会存在,而不是两者都存在。然后我应该过滤我不想做的输出。
    猜你喜欢
    • 2018-11-09
    • 2015-05-16
    • 2023-03-10
    • 2019-02-16
    • 1970-01-01
    • 2017-10-03
    • 2019-05-22
    • 2023-03-31
    相关资源
    最近更新 更多