2016-10-01 256 views
1

我有一個數據庫正在運行,但我無法執行兩個表之間的聯接。我已經做了兩個其他表之間的連接,但這個不起作用。續集加入和關係

在我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 

我如何能改善這種任何想法?

非常感謝,任何幫助表示讚賞。如果需要更多信息,請告訴我。

+0

的console.log'diedId',看看你會得到什麼 – user3254198

+0

我不認爲我能做到這一點,因爲我甚至不能參加在得到錯誤之前的表格 – leofontes

+0

啊,我明白你想要做什麼。你一起加入了「膳食」和「飲食」。你試圖查詢附帶所有「飲食」的「膳食」? – user3254198

回答

1

此:

db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'}); 

應該是這樣的:

db.diet.hasMany(db.meal, {as : 'Meals'}); 

你是說diet有很多meal模型稱爲Meals這樣你就可以包括Mealsdiet

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" 
}); 

我已經回答了像這樣similiar問題在這裏:https://stackoverflow.com/a/39822966/3254198

+0

非常感謝!還有一個問題,我的數據庫已經在生產,我可以更改我的db.js文件上的關係嗎?或者這將是非法的? – leofontes