我有3个模型的续集数据库。
每个团队可以有多个参与者,因此参与者表中可以有多个具有相同teamId的记录。与团队成绩相同的情况。
我正在尝试通过以下方式查询所有参与者和团队成果与团队相关联的查询:
{
"id": 1,
"teamName": "Awesome Team",
//other team attributes..
"participants": [
{
"id": 12,
"teamId": 1,
//other details
},
{
"id": 13,
"teamId": 1,
//other details
},
],
"teamResults": [
{
"id": 22,
"teamId": 1,
//other details
},
{
"id": 13,
"teamId": 1,
//other details
}
]
}
我写了下面的陈述,但我得到的只是第一个参与者和导师,而不是全部:
models.Team.find({
where: {
id: req.params.teamId
},
include: [
{model: models.Participant, required: true},
{model: models.TeamResult, required: true}
]
}).then(function(team){/* handle team object here */})
为了获得所需的结果,我需要做出哪些更改?
答案 0 :(得分:1)
自己解决了。犯了一个愚蠢的错误。我没有hasMany
关联,而是在团队协会中使用hasOne
。现在修好了。