sequelize nested include 有一个条目为 table ,但不能从这部分查询中引用
sequelize nested include There is an entry for table , but it cannot be referenced from this part of the query
我正在使用 sequelize 和嵌套包含。我希望 table ModelC
在 id
上与 table ModelB
以及 SomeColumnId
上的 ModelA
连接。表 ModelC
和 ModelA
彼此没有关联,但它们都与 ModelB
(hasMany-belongsTo) 有关联。
到目前为止,这是我的代码:
const model = await ModelA.findAll({
include: {
model: ModelB,
include: {
model: ModelC,
where: {
[Op.and]: [
sequelize.literal(
'"ModelB->ModelC"."SomeColumnId" = "ModelA"."SomeColumnId"'
),
],
},
},
},
subQuery: false,
raw: true,
});
但是它给我一个错误:
Invalid reference to FROM-clause entry for table "ModelA".
There is an entry for table "ModelA", but it cannot be referenced from this part of the query.
我该如何解决这个问题?
我设法解决了这个问题。
const model = await ModelA.findAll({
include: {
model: ModelB,
raw: true,
include: {
model: ModelC,
required: false,
where: {
SomeColumnId: [sequelize.literal('"ModelA"."SomeColumnId"')],
},
},
},
});
我正在使用 sequelize 和嵌套包含。我希望 table ModelC
在 id
上与 table ModelB
以及 SomeColumnId
上的 ModelA
连接。表 ModelC
和 ModelA
彼此没有关联,但它们都与 ModelB
(hasMany-belongsTo) 有关联。
到目前为止,这是我的代码:
const model = await ModelA.findAll({
include: {
model: ModelB,
include: {
model: ModelC,
where: {
[Op.and]: [
sequelize.literal(
'"ModelB->ModelC"."SomeColumnId" = "ModelA"."SomeColumnId"'
),
],
},
},
},
subQuery: false,
raw: true,
});
但是它给我一个错误:
Invalid reference to FROM-clause entry for table "ModelA".
There is an entry for table "ModelA", but it cannot be referenced from this part of the query.
我该如何解决这个问题?
我设法解决了这个问题。
const model = await ModelA.findAll({
include: {
model: ModelB,
raw: true,
include: {
model: ModelC,
required: false,
where: {
SomeColumnId: [sequelize.literal('"ModelA"."SomeColumnId"')],
},
},
},
});