Javascript 使用sequelize.js创建与多个外键的关联
我希望使用sequelize.js进行一次调用并ping两个表 我希望我的结果在第二个表中找到与两个外键匹配的对应数据—“timeperiod”和“nodeid” 目前,不管别名如何,我的查询只会匹配我指定的最后一个外键。因此,在这种情况下需要一个时间段Javascript 使用sequelize.js创建与多个外键的关联,javascript,sequelize.js,Javascript,Sequelize.js,我希望使用sequelize.js进行一次调用并ping两个表 我希望我的结果在第二个表中找到与两个外键匹配的对应数据—“timeperiod”和“nodeid” 目前,不管别名如何,我的查询只会匹配我指定的最后一个外键。因此,在这种情况下需要一个时间段 associate: function (models) { models.belowOcfBudget.belongsTo(models.belowOcf, { foreignKey: 'nodeid',
associate: function (models) {
models.belowOcfBudget.belongsTo(models.belowOcf, {
foreignKey: 'nodeid',
targetKey: 'nodeid',
as: 'belowOcf_id'
});
models.belowOcfBudget.belongsTo(models.belowOcf, {
foreignKey: 'timeperiod',
targetKey: 'timeperiod',
as: 'belowOcf_time'
});
}
下面是我在路由器中包含此关联的位置
BelowOCFBudget.findAll({
raw: true,
include:[{
model: models.belowOcf,
as: 'belowOcf_id'
}],
include:[{
model: models.belowOcf,
as: 'belowOcf_time'
}]
如何执行查询并从两个具有匹配时间段和id的表中返回数据集?您不应该两次包含关联模型。这将导致在同一个表上进行向左联接,每个外键对应一个。 而是只包含一次,并将第二个外键的匹配项作为附加where子句添加到include中 还没有测试过,但应该是这样的:
BelowOCFBudget.findAll({
raw: true,
include:[{
model: models.belowOcf,
where: {belowOcf.timeperiod: timeperiod}
}],
})