gpt4 book ai didi

node.js - 获取给定一场比赛的所有关联记录

转载 作者:行者123 更新时间:2023-12-03 22:23:14 25 4
gpt4 key购买 nike

我有两个具有一对多关系的模型。鉴于下面的查询返回一条 ModelA 的记录(假设它的 id 为 1)和 3 个关联的 ModelB(1、2 和 3)。

如果我将查询中的 [1,2,3] 替换为 [1],它仍然会返回相同的 ModelA 记录(ID 为 1),但仅返回关联的 ModelB(ID 为 1)。如何修改此查询以使其返回所有三个关联的 ModelB 记录?

ModelA.findAll({
include: [{
model: JoinTableModel,
where: {
modelB_ID: {
[Op.in]: [1,2,3]
}
},
include: [ModelB]
}]
})

像这样的模型定义。
db.ModelA.hasMany(db.JoinTableModel, { foreignKey: 'modelA_ID' })
db.JoinTableModel.belongsTo(db.ModelA, { foreignKey: 'modelA_ID' })

db.ModelB.hasMany(db.JoinTableModel, { foreignKey: 'modelB_ID' })
db.JoinTableModel.belongsTo(db.ModelB, { foreignKey: 'modelB_ID' })

最佳答案

你可以尝试这样的事情:

JoinTableModel.findAll({
where: {
modelB_ID: {
[Op.in]: [1]
}
},
include: [{
model: ModelA,
include: [{
model: JoinTableModel,
include: [ModelB]
}]
}]
})

如果您添加这样的关联:
ModelA.belongsToMany(ModelB, { through: JoinTableModel })

那么你可以将上面的查询简化为这个:
JoinTableModel.findAll({
where: {
modelB_ID: {
[Op.in]: [1]
}
},
include: [{
model: ModelA,
include: [ModelB]
}]
})

关于node.js - 获取给定一场比赛的所有关联记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62250166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com