【问题标题】:How to sequlieze code to join more than two tables?如何续集代码以连接两个以上的表?
【发布时间】:2019-03-27 13:44:57
【问题描述】:

我有几个表,我想使用 sequelize 检索数据。 这些表的架构如下所示:

我想加入其中三个表,但收到错误号 1054。

这是我的代码:

技能模型:

    'use strict';
    module.exports=(sequelize,Datatypes)=>{
       const Skill=sequelize.define('userskills',{
      id:{type:Datatypes.INTEGER,autoincrement:true,primaryKey:true},
      Userid:{type:Datatypes.INTEGER,allowNull:false},
      Skill:{type:Datatypes.STRING,allowNull:false}
    });
       Skill.associate=(model)=>{
         Skill.belongsTo(model.User,{
           as:"User info",
           onDelete:"CASCADE",
           onUpdate:"CASCADE",
           foreignKey: 'Userid',
           targetKey:"id"
         });
         Skill.belongsTo(model.Subcategory,{
           as:"Skill info",
           onDelete:"CASCADE",
           onUpdate:"CASCADE",
           foreignKey:"Skillid",
           targetKey:"id"
         });
       };
       return Skill;
    };

获取数据调用的函数:

    router.get('/',(req,res)=>{
      model.Skill.findAll({
        include:[{all:true}]
      }).then(result=>{
        res.status(200).json({
          result
        });
      }).catch(err=>{
        res.status(500).json({
          error:err
        });
      });
    });

【问题讨论】:

    标签: javascript mysql node.js sequelize.js


    【解决方案1】:

    您的 ER 图似乎与 Sequelizer 模型对象不匹配...例如,技能中的 FK 是名为“Skillid”(模型)还是“Skillkey”(ER​​)?

    跟踪 sql 错误 1054 (unknown col):在 node.js 日志中,找到 Sequelizer 从您的 findAll 生成的查询,复制/粘贴到 MySqlWorkbench 并执行。哪一栏错了?

    【讨论】:

    • 我也试过了,但似乎错误是别的东西
    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2016-06-17
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2020-01-08
    相关资源
    最近更新 更多