NODEJS - 执行 INNER JOIN 续集

Posted

技术标签:

【中文标题】NODEJS - 执行 INNER JOIN 续集【英文标题】:NODEJS - Perform INNER JOIN sequelize 【发布时间】: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));
  ,

但是响应不同,即如下:

我的数据库:

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

【问题讨论】:

How to make join queries using Sequelize on Node.js的可能重复 【参考方案1】:

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

【讨论】:

以上是关于NODEJS - 执行 INNER JOIN 续集的主要内容,如果未能解决你的问题,请参考以下文章

如何在Nodejs中使用Sequelize在没有公共列的两个表上进行INNER JOIN?

sql left join 和 inner join 效率

执行 INNER JOIN 时查询返回错误值?

sql inner join 与 left join和right join 执行效率上面有多大差别?

Spark SQL join 条件写法遇见的坑 left join 最终被当做inner join执行

MySQL中inner join 和 cross join 的区别