【问题标题】:NODEJS - Perform INNER JOIN sequelizeNODEJS - 执行 INNER JOIN 续集
【发布时间】:2020-02-25 13:03:27
【问题描述】:

我想使用 sequelize 和 Node.js 执行 INNER JOIN。实际的 SQL 查询如下所示:

SELECT b.id, b.title, b.author, b.image_url, s.novel_status AS status, g.genre 
FROM novels b 
  INNER JOIN genres g 
  ON b.genre = g.id 
  INNER JOIN novel_statuses s 
  ON b.status = s.id

它给出了以下响应:

使用 sequelize 作为我的 ORM,我尝试像这样完成上述操作:

getNovel: (req, res) => {
    novelModel.hasMany(statusModel, {
      foreignKey: 'id'
    });
    statusModel.belongsTo(novelModel, {
      foreignKey: 'id'
    });
    novelModel.hasMany(genreModel, {
      foreignKey: 'id'
    });
    genreModel.belongsTo(novelModel, {
      foreignKey: 'id'
    });

    novelModel
      .findAll({
        include: [
          {
            model: genreModel,
            required: true,
            attributes: ['genre']
          },
          {
            model: statusModel,
            required: true,
            attributes: ['novel_status']
          }
        ]
      })
      .then(result => res.json(result))
      .catch(err => res.json(err));
  },

但是响应不同,即如下:

我的数据库:

我试图寻找答案,但没有任何运气。

【问题讨论】:

标签: mysql node.js sequelize.js


【解决方案1】:

您应该给出您使用的模型框架的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 2019-12-05
    • 2011-01-22
    • 1970-01-01
    • 2016-06-19
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多