javascript - 使用 Sequelize.js 创建 JOIN WHERE key IN(SELECT key FROM...)

标签 javascript mysql sequelize.js

我是 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 对象中?像这样的东西:

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
   })        

关于javascript - 使用 Sequelize.js 创建 JOIN WHERE key IN(SELECT key FROM...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56167312/

相关文章:

javascript - ORM:更新给定实例的所有模型

php - 将 SQL 转储到文件 : data with accent (italian) different charset

javascript - 使用 Chrome 扩展程序将在 chrome 中访问的 URL 插入到 MySQL 数据库

javascript - 为什么这个 <li> 上的事件处理程序没有被调用?

javascript - 如何使用 javascript/html 从 SVG 文件插入对象?

mysql - 根据或等于列名更新mysql数据

node.js - sequelize beforeValidate 将键和值放入对象

reactjs - SequelizeDatabaseError 数据在第 4 行的列位置被截断

javascript - 在 div 上复制输入滚动

c# - 如何从 C# 打开对话框(模态)