I want to perform an INNER JOIN using sequelize and Node. The actual SQL query looks like this:
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
Which gives the following response:
Using sequelize as my ORM, I have tried to accomplish the above like this:
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));
},
But then the response is different, i.e. as below:
My DB:
I have tried to search for answers, but without any luck.