我有一个正在运行的数据库,但我无法在两个表之间执行连接。我已经在另外两个表之间进行了联接,但这个表不起作用。
在我的 db.js 文件中,我在表之间建立了以下关系:
db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'});
在我的 server.js 文件中,我正在尝试构建此查询:
db.meal.findAll({
include : [db.diet],
where : {
dietId : idDiet
}
}).then(function (meals) {
res.json(meals)
});
这给了我以下错误:
ReferenceError: idDiet is not defined
我也试过这样查询饮食表:
db.diet.findAll({
include :[db.meal],
where : {
idDiet : dietId
}
}).then(function (meals) {
res.json(meals);
});
但它也给我一个错误:
ReferenceError: dietId is not defined
关于如何改进它有什么想法吗?
非常感谢,任何帮助都将不胜感激。如果需要更多信息,请告诉我。
最佳答案
这个:
db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'});
应该是这样的:
db.diet.hasMany(db.meal, {as : 'Meals'});
你是说 diet
有很多 meal
模型,称为 Meals
所以你可以包括 Meals
与饮食
。
db.diet.findAll({
include: [db.meal] // include the meal in the query ("join")
}).then((diet) => {
// diet.Meals is a array of "meal" models that
// belongs to the queried "diet"
});
我在这里回答过类似的问题:https://stackoverflow.com/a/39822966/3254198
关于node.js - Sequelize连接和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811769/