javascript - 使用 Sequelize.js 创建一个 JOIN WHERE key IN(SELECT key FROM...)
问题描述
我是 Sequelize.js 中的菜鸟,在 Angular 中稍微少一些,但必须解决我想使用子查询作为 JOIN 条件的问题。我在下面粘贴了一些示例,因为代码说的比文字多。
SQL
INNER JOIN table ON table.key IN(SELECT current_key FROM historysnake WHERE original_key IN(
SELECT original_key FROM historysnake WHERE current_key = table.key)
AND historysnake.model = 'tablename')
问题是:如何将上述查询放入 Sequelize 对象?就像是:
续集.js
var foo = sequelize.define('foo', {...}, {
classMethods: {
associate: function(models) {
foo.hasMany(...)
}
}
});
解决方案
好的,这是一个示例,假设 PatientEvents 的 PK 是所有历史记录行上的 original_key:
PatientEvents.hasMany(HistorySnake, {foreignKey : 'original_key'});
PatientEvents.findAll({
include: [{
model: HistorySnake,
required : true, // true = INNER JOIN but you might need outer join to see events with no history
where : { modelName : 'PatientEvents' } // as needed
}],
where: { patient_name : 'xyz' } // as needed
})
推荐阅读
- python - 具有枚举编码的 Protobuf oneof 字段
- c# - NPGSQL 开始文本导入在较大的 CSV 文件上引发异常
- javascript - 使用 react-redux 时,prevProps 和 this.props 将始终在 componentDidUpdate 中返回相同的值
- mysql - MySQL - 多个并发更新
- c - 第 25 行中的运行时错误:字符 35:运行时错误:“struct HASH_TABLE”类型的空指针内的成员访问(solution.c)
- android - 如何在不使用库的情况下在状态、焦点和正常状态下应用自定义形状的 TextInputLayout
- python - 记录学生姓名的功能
- xcode - 图像作为图标外观
- c - 即使我包含 unistd.h 在内核代码中隐式声明 getpid
- amazon-web-services - 如何使用 Eclipse JEE 从我的 Web 应用程序登录到 AWS?