【发布时间】: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