我是 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/