【问题标题】:I can't do queries with 3 tables in Sequelize (include doesn't work well)我无法在 Sequelize 中对 3 个表进行查询(包含效果不佳)
【发布时间】:2022-12-04 07:55:06
【问题描述】:

首先,抱歉我的英语不好。我有期末论文要做,但我有一些问题需要解决。我总是用 3 个表进行查询,有些表返回 null。我有两个问题:

  1. 表格教授有时返回 null
  2. 表格奥拉总是有相同的ID教授, 所以一些奥拉斯无法显示教授谁有关系。

    控制器代码

    static async buscarAulasPorEscola(req, res) {
    
      try {
        const todasAulas = await database.Escola.findAll({
          include: {
            model: database.Aula,
            include: {
              model: database.Professor
            }
          }
        })
        return res.status(200).json(todasAulas)
      } catch(error) {
        return res.status(500).json(error.message)
      }
    }
    

    以下是使用上面的控制器实现的一些查询: Query-Part1 Query-Part2

    迁移和模型https://ibb.co/album/k4rNgS

    我试着实现那里的控制器并展示所有包括,并解决这个问题。

【问题讨论】:

  • 我不确定你想要什么;你需要LEFT JOIN来处理没有“教授”的情况吗?然后你需要在 include 子句上使用 required: false

标签: javascript node.js express sequelize.js


【解决方案1】:

你在Professor.hasMany(Aula中注明了fkprofessor,同时你在Aula.belongsTo(Professor中注明了id
您需要在两者中都注明idfkprofessor 才能使它们以相同的方式正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多