join连接和关系
我有一个数据库运行,但我还没有能够执行两个表之间的联接。 我已经做了另外两个表之间的连接,但是这个不起作用。
在我的db.js文件上,我build立了以下表之间的关系:
db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'});
而在我的server.js文件,我试图build立这个查询:
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
有很多称为Meals
meal
模式,所以你可以把diet
包括在内。
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