【问题标题】:Sequelize joining tables with multiple records with same foreign keySequelize 具有相同外键的多条记录的连接表
【发布时间】:2023-03-24 16:09:01
【问题描述】:

我有 3 个模型的 sequelize 数据库。

  1. 团队 - 主键:id
  2. 参与者 - foreignKey 指代团队 - teamId
  3. TeamResult-foreignKey 指代 Team - teamId

每个团队可以有多个参与者,因此参与者表中可以有多个具有相同 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 */})

为了获得所需的结果,我需要进行哪些更改?

【问题讨论】:

    标签: mysql node.js express sequelize.js


    【解决方案1】:

    自己解决了。犯了一个愚蠢的错误。我在团队的关联中使用hasOne 而不是hasMany 关联。现已修复。

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 1970-01-01
      • 2015-11-15
      • 2017-06-15
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      相关资源
      最近更新 更多