首页 文章

NodeJS Sequalize - 基于关系查找

提问于
浏览
0

我正在使用seqalize js,我有一个关系“驱动程序[可以有]许多驱动程序” . 这基于多对多关系 .

我正在尝试找到所有基于特定公司的驱动程序 . 我有以下内容:

models.drivers.findAll({

        where: {"companies.id":1},
        include: [
          models.companies
        ]
    }).then(function(result){

        return res.json(result);
        return;

    });

我收到以下错误:

未处理的拒绝SequelizeDatabaseError:列drivers.companies.id不存在

当我输出没有 where 子句的结果时,'s showing the associated companies just fine. I can'看到这个问题会来自哪里?

1 回答

  • 1

    您可以根据model.findAll的文档在 include 中使用 where 选项

    哪些条款适用于儿童模特 .

    models.drivers.findAll({
        include: [
            {
                model: models.companies,
                where: { id: 1 }
            }
        ]
    }).then(function(result){
        return res.json(result);
    });
    

    这会生成 JOIN ,条件类似

    ON drivers.id = drivers_companies.driver_id
    AND companies.id = 1
    

    假设 drivers_companies 是一个连接 driverscompanies 之间的M:M关系的表 .

相关问题