我有几个表,我想从sequelize中检索数据。
这些表的架构如下所示:
javascript - 如何顺序化代码以连接两个以上的表?-LMLPHP
我想加入其中的三个表,但我得到的错误号是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
        });
      });
    });

最佳答案

您的ER图似乎与Sequelizer模型对象不匹配。。。例如,技能中的FK是名为“Skillid”(model)还是“Skillkey”(ER)?
要跟踪sql错误1054(未知列):在node.js日志中,找到sequencerizer从findAll生成的查询,复制/粘贴到MySqlWorkbench并执行。哪一列错了?

07-26 07:25