我遇到了一个问题,Sequelize 创建主模型的子查询,然后将包含与该子查询连接起来,而不是直接与主模型表连接。包含的查询条件最终位于子查询的 WHERE 子句中,这使其无效。我已经缩短了名字,希望能保持这种紧凑,而不会丢失任何相关信息。
环境:Nodejs: 6.11.3 Sequelize: 3.23.6 => 更新到 4.38.1 问题依旧 MySql: 5.7.23
代码截图模型:
I.model:
models.I.hasMany(models.II);
models.I.belongsTo(models.CJ);
models.I.belongsTo(models.CJS);
II.model:
models.II.belongsTo(models.I);
CJ.model:
models.CJ.hasMany(models.I);
models.CJ.hasMany(models.CJS);
CJS.model:
models.CJS.hasMany(models.I);
Run Code Online (Sandbox Code Playgroud)
代码片段查询定义:
let where = { cId: '2',
iAmt: { '$gt': 0 },
'$or':
[ { '$CJ.a1$': {$like: '%246%'}} },
{ '$CJ.a2$': {$like: '%246%'} },
{ '$I.cPN$': {$like: '%246%'} }
] };
let query = {
where: where,
order: orderBy,
distinct: true,
offset: offset,
limit: limit,
include: [
{
model: CJ,
as: 'CJ',
required: false …
Run Code Online (Sandbox Code Playgroud)