Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用sequelize.js创建与多个外键的关联_Javascript_Sequelize.js - Fatal编程技术网

Javascript 使用sequelize.js创建与多个外键的关联

Javascript 使用sequelize.js创建与多个外键的关联,javascript,sequelize.js,Javascript,Sequelize.js,我希望使用sequelize.js进行一次调用并ping两个表 我希望我的结果在第二个表中找到与两个外键匹配的对应数据—“timeperiod”和“nodeid” 目前,不管别名如何,我的查询只会匹配我指定的最后一个外键。因此,在这种情况下需要一个时间段 associate: function (models) { models.belowOcfBudget.belongsTo(models.belowOcf, { foreignKey: 'nodeid',

我希望使用sequelize.js进行一次调用并ping两个表

我希望我的结果在第二个表中找到与两个外键匹配的对应数据—“timeperiod”和“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}
    }],
})