我有模型 A , B 和 C 。
A 与 B 和 C (以及 B 和 C 拥有一个回溯到 A )
的belongsTo关联我想返回 A的记录,其中B.b_column ='b'或C.c_column ='c'。
我当前的方法是尝试在哪里使用 必需的:false ,但这仅返回A及其关联的所有记录(如果它们存在)。我还尝试在关联上使用 separate:true ,但它似乎仍会带来比我想要的更多的记录。
var results = await A.all({
include: [
{
model: B, as: "Bs",
where: { b_column: "b"},
separate: true
},
{
model: C, as: "Cs",
where: {c_column: "c"},
separate: true
},
]
});
答案 0 :(得分:4)
您需要做的就是从根级别进行查询
您在这里:
A.all({ // <------ I think this should be A not B as per your question
include: [
{
model: B, as: "Bs"
},
{
model: C, as: "Cs"
},
],
where : {
$or : [
{ 'Bs.b_column' : "b" }, // <---- Might have to change table alias name
{ 'Cs.c_column' : "c" }
]
}
});