sequelize 如何进行联合查询

发布于 2022-09-03 09:35:37 字数 765 浏览 12 评论 0

现在假设有三个表,Program(方案表,1个方案多个实施), Implementation(实施表,1个实施有一个工具;该表字段program_id指向program的自增ID,该表字段tool_id指向tools的自增ID), Tools(工具表)

Program = sequelize.define('program', {
  program_id : {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
});
Implementation = sequelize.define('implementation', {
  implementation_id : {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  program_id: {
    type: DataTypes.INTEGER,
  },
  tool_id: {
    type: DataTypes.INTEGER,
  },
});
Tools= sequelize.define('tools', {
  tool_id : {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
});

请问该如何定义associate?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多彩岁月 2022-09-10 09:35:37

添加关联关系
Models. program.hasMany(Models.implementation, { foreighKey: 'program_id', as: 'implementations' });
Models.implementation.belongsTo(Models.tools, { foreighKey: 'tool_id', as: 'Tools' });

model 定义

Implementation = sequelize.define('implementation', {
  implementation_id : {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  program_id: {
    type: DataTypes.INTEGER,
     references: {
        model: 'program',
        key: 'id',
      },
  },
  tool_id: {
    type: DataTypes.INTEGER,
     references: {
        model: 'program',
        key: 'id',
      },
  },
});

后面就可以连表查了

羁绊已千年 2022-09-10 09:35:37

请问楼主解决这个问题了吗,是基于Program进行查询吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文