首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sequelize在上传数据时连接两个表?

如何使用sequelize在上传数据时连接两个表?
EN

Stack Overflow用户
提问于 2020-01-27 20:07:07
回答 1查看 97关注 0票数 0

我有两个包含现有数据的表,我试图在上传时将它们与sequelize相关联,

其中,表1(Get_awgs)包含:

代码语言:javascript
复制
id| awg | area |

表二(Harnes_detial)包含将被上传的内容:

代码语言:javascript
复制
id| gauge | description | price 

其中我通过以下方式将它们关联起来:

代码语言:javascript
复制
 Harness.belongsTo(Awg,{constraints: false, foregineKey:'getAwgId'});
 Awg.hasMany(Harness);

我已经通过foreignKey更新了查询

代码语言:javascript
复制
PRIMARY KEY (id), FOREIGN KEY (getAwgId) REFERENCES get_awgs (id) 
    ON DELETE SET NULL 
    ON UPDATE CASCADE) 
ENGINE=InnoDB;

当我路由我的模型时

代码语言:javascript
复制
router.get("/mergeTable/:awg", (req, res)=>{
  var awg = req.params.awg;
  Harness.findAll({where: {gauge: awg}, include:[{model: Awg}]}).then(resutls =>{
  res.send(JSON.stringify(resutls));
  }).catch(err=>{
    console.log(err);
  });
});

它说: SQL消息:“未知的列'harnes_detial.getAwgId‘在’字段列表‘”,当我.sync({force: true})我得到的字段名称,但这是将有一个空表,我不能连接两个表的结果,如果我上传数据,我将不会有序列化创建的字段。如果我这样做,它是有效的manually...what将是自动化的过程。

我想要的是

表二(Harnes_detial)包含:

代码语言:javascript
复制
id| gauge | description | price | getAwgId
1    20       xyz          30      1
2    30       xyz          20      2
3    40       xyz          50      3
4    20       xyz          60      1

如何使用上传表2数据的现有数据更新此awgId?请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 21:34:49

您尚未正确定义序列化关联。您正在尝试将表awgharnes_detial关联起来,但是ORM生成的查询显示它正在将harnes_detialget_awgs关联起来。

另一个观察结果是,您希望ORM在harness_detial表中自动生成getAwgId列,但是ORM希望您预先拥有一个数据库列。您可以映射外键和目标键。

我建议你关注official documentation of sequelizethis博客,了解更多关于如何定义sequelize关联的内容。

希望它能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59930858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档