I'm trying to join 3 tables together Products
, Suppliers
and Categories
and then get row with SupplierID = 13
. I have read How to implement many to many association in sequelize, there is explained how to associate 0:M
.
DB model:
Code:
var Sequelize = require('sequelize')
var sequelize = new Sequelize('northwind', 'nodejs', 'nodejs', {dialect: 'mysql',})
var Project = require('sequelize-import')(__dirname + '/models', sequelize, { exclude: ['index.js'] });
Project.Suppliers.hasMany(Project.Products, {foreignKey: 'SupplierID'});
Project.Products.belongsTo(Project.Suppliers, {foreignKey: 'SupplierID'});
Project.Categories.hasMany(Project.Products, {foreignKey: 'CategoryID'});
Project.Products.belongsTo(Project.Categories, {foreignKey: 'CategoryID'});
Project.Products
.find({
where: {
SupplierID: 13
},
include: [
Project.Suppliers,
Project.Category,
]
})
.success(function(qr){
if (qr == null) throw "Err";
console.log("---");
console.log(qr);
})
.error(function(err){
console.log("Err");
});
Log:
EventEmitter#success|ok is deprecated, please use promise-style instead.
EventEmitter#failure|fail|error is deprecated, please use promise-style instead.
Err