左排除加入续集

2024-03-20

我有两张表,其中一张表有另一张表的 ID。 1:1 关系。 所以像

EventFeedback
    somePrimaryKey
    userEventID
UserEvent
    userEventID

Sequelize 的关系定义为

models.UserEvent.hasOne(models.EventFeedback, { foreignKey: 'userEventID' });

I need all entries in UserEvent that do not have an entry in EventFeedback, which is an exclusionary join. Stealing images from this article https://www.codeproject.com/kb/database/visual_sql_joins.aspx because they have nice individual images: left excluding join

他们甚至给出了示例代码!

SELECT <select_list> 
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL

我如何在续集中做到这一点? 我只需要进行左连接并手动处理它吗?


你需要急切地加载EventFeedback查询时UserEvent并添加适当的where条款。您还需要定义EventFeedback结果中不需要,因此查询将生成LEFT JOIN反而INNER JOIN

UserEvent.findAll({
    include: [{
        model: EventFeedback,
        required: false, // do not generate INNER JOIN
        attributes: [] // do not return any columns of the EventFeedback table
    }],
    where: sequelize.where(
        sequelize.col('EventFeedback.userEventID'),
        'IS',
        null
    )
}).then(userEvents => {
    // user events...
});

在上面的代码中sequelize是 Sequelize 的一个实例,其中定义了模型。您还可以参考文档sequelize.where() http://docs.sequelizejs.com/en/latest/api/sequelize/#whereattr-comparator-logic-sequelizewhere and sequelize.col() http://docs.sequelizejs.com/en/latest/api/sequelize/#colcol-sequelizecol方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

左排除加入续集 的相关文章

  • 在 PostgreSQL 中对 JsonB 数组进行 Sequelize ORM 查询

    如何使用一些匹配条件和逻辑运算 lt et gte等 在 Jsonb 对象数组上 在 PostgreSQL 中使用 Sequelize ORM 表名 calls id direction metaData 1 inbound 2 outbo
  • 如何在Sequelize模型中添加实例方法

    我想添加一个实例方法Sequelize User模型与postgres User模型定义如下 const Sql require sequelize const db require startup db const User db def
  • Node.js 续集关联,包含条件

    是否可以在 findAll 查询的包含数组中传递条件 例如 我有 UsersModel PostsModel 和 UserVotesModel 用户可以对帖子进行投票 对于登录用户 我想查询帖子并仅包含当前用户的投票 我无法使用 Seque
  • Sequelize 设置时区进行查询

    我目前正在使用续集 with postgres在我的项目中 我需要更改查询 因此它返回带有时区偏移量的created at列 var sequelize new Sequelize connStr dialectOptions useUTC
  • 如何在自引用关联中强制执行外键约束?

    假设最简单的例子 var Person sequelize define Person name Sequelize STRING Person hasMany Person as Children foreignKeyConstraint
  • 使用原始 Sequelize 查询的替换:避免单引号?

    这可能有一个非常简单的答案 但我没有看到它 我想做一个原始查询 http sequelizejs com docs 1 7 8 usage raw queries使用续集 var sequelize require sequelize se
  • Sequelize 测试 - 有时会出现验证错误

    我正在通过 Mocha Chai 对续集定义运行单元测试 如下所示 运行的主要tests jsmocha tests js Testing Dependencies expect require chai expect should req
  • 在多对多连接的位置进行序列化

    我希望有人能帮助我 我正在使用 Express js 的 Sequelize ORM 并且在 2 个表之间建立了有效的多对多关系 为了简化我的查询 让我们假装我的表是 Users Books 和 UserBooks 其中 UserBooks
  • 在不同条件下更新sequelize中的多行

    我正在尝试对 postgres 数据库中的行执行带有sequelize 的更新命令 我需要能够使用相同的值更新具有不同条件的多行 例如 假设我有一个包含以下字段的用户表 ID 名 姓 Gender Location 创建于 假设 我在此表中
  • Sequelize 查找软删除的行

    我试图从数据库中获取一些已软删除的行和一些未软删除的行 但它对我不起作用 Model findAll where cond xxx include Model2 paranoid false then function rows do so
  • 在sequelize.js 上查询“paranoid”表时如何包含已删除的元素?

    我希望我的应用程序上以前存在的用户已使用偏执模式删除 所以现在它的字段deletedAt is NOT null 以便能够使用同一电子邮件再次注册 因此 当 API 注意到使用以前使用过的电子邮件创建用户时 它会设置为null the de
  • 在 Sequelize 迁移中创建关联

    节点js 续集4 41 尝试通过另一个表制作两个多对多关系的模型 跑步与续集 cli 例如 sequelize model generate name Camera attributes name string sn string 这里是模
  • 通过另一个表对 hasMany 进行 Sequelize

    好的 我有以下三个models Module var Module sequelize define module id DataTypes INTEGER name DataTypes STRING description DataTyp
  • sequelize Model.hasOne 错误:模型未与 ModelTwo 关联

    我已将sequelizejs 集成到我的express 框架中 我配置了所有模型 并尝试用它构建我的第一个查询 我不断收到错误 错误 模型未与 ModelTwo 关联 app get function req res db Member f
  • NodeJS 的续集:支持这些功能吗?

    以下是关于sequelize支持的功能的一些问题 续集项目网站 http sequelizejs com 在决定是否使用它之前我想澄清一下 链接 效率 当链接多个查询时 这些查询是收集到对数据库的一个请求中 作为一批操作 还是每个请求单独发
  • 在我自己的文件夹结构中的 Sequelize 中的迁移

    我是新来的Sequelize我当前的项目要求我将它与迁移一起使用 我熟悉迁移的内容和方式 我来自Django背景 每个子应用程序在同一文件夹中都有模态 视图 api url 和迁移 我喜欢这个结构 并希望在我的 Nodejs 应用程序中保持
  • 使用sequelize 根据express.js 中的路由更改数据库连接

    是否可以更改数据库连接sequelize取决于路线 例如 用户可以访问网站中的 2 个不同安装 example com foo example com bar 登录后用户将被重定向到example com foo为了获得他们的所有任务foo
  • 我想使用 Sequelize 将 MySQL 中的对象数组存储在单个列中

    之前我正在寻找如何使用 Sequelize 在 MySQL 中插入对象数组 然后我找到了一种直接插入数组的解决方案 例如 1 2 在单列中 insert into TABLE NAME id marks VALUES 21 1 2 但我正在
  • SQL查询查找具有特定数量关联的行

    使用 Postgres 我有一个架构conversations and conversationUsers Each conversation有很多conversationUsers 我希望能够找到具有确切指定数量的对话conversati
  • Sequelize - 使用 es6 和模块运行迁移

    我不确定我是否做错了什么或者什么 我觉得我正在运行一个现代的 相当常见的堆栈 但我无法让新的 Sequelize v6 与我的设置完美配合 我在 Node v14 17 Sequelize v6 6 2 上 在我的 package json

随机推荐