Sql Sequelize在将WHERE应用于联接表和选项中的“limit”时进行嵌套的SELECT查询

Sql Sequelize在将WHERE应用于联接表和选项中的“limit”时进行嵌套的SELECT查询,sql,node.js,sql-server,sequelize.js,Sql,Node.js,Sql Server,Sequelize.js,我正在尝试对一个模型进行查询,该模型通过包含的模型中的属性进行过滤。这就是sequelize选项的外观 const result=等待A.findAll{ 属性:[ 身份证件 字段1, 字段2, ], 限额:10, 包括:[ { 型号:B, 属性:[id], 其中:{ fieldC:{[Op.substring]:值} }, } ] }; 它在数据库中执行这个查询 选择[a]..[b].[Id]作为[b.Id] 从…起 选择 [a] [Id]作为[Id], [a] [Field1]作为[Fiel

我正在尝试对一个模型进行查询,该模型通过包含的模型中的属性进行过滤。这就是sequelize选项的外观

const result=等待A.findAll{ 属性:[ 身份证件 字段1, 字段2, ], 限额:10, 包括:[ { 型号:B, 属性:[id], 其中:{ fieldC:{[Op.substring]:值} }, } ] }; 它在数据库中执行这个查询

选择[a]..[b].[Id]作为[b.Id] 从…起 选择 [a] [Id]作为[Id], [a] [Field1]作为[Field1], [a] [Field2]作为[Field2] 从[A]起,作为[A] 哪里 选择[Id] 从[B]起,作为[B] 哪里 [b] [FieldC]类似于N“%value%”和 [b] [AId]=[a].[Id] [b].[Id]下的订单 偏移0行 只取下1行 不为空 由[a].[Id]订购 偏移0行 只取下10行 作为[a] [a].[id]=[B].[AId]和[B].[FieldC]上的[B]作为[B]的内部联接,如N'%value%' 由[id]订购; 如果下面的查询足够的话,我不确定为什么它会执行嵌套查询。事实上,如果我从findAll选项中删除limit字段,它将执行如下查询,而不使用OFFSET和FETCH关键字

选择 [a] [Id]作为[Id], [a] [Field1]作为[Field1], [a] [Field2]作为[Field2], [b] [Id]作为[b.Id] 从[A]起,作为[A] [a].[Id]=[B].[AId]和[B].[FieldC]上的[B]作为[B]的内部联接,如N'%value%' 由[a].[Id]订购 偏移0行 只取下10行 当选项中包含限制字段时,为什么sequelize会运行第一个查询而不是第二个查询?有没有办法强迫它不执行不必要的嵌套查询

谢谢

尝试将子查询:false添加到您的findAlltry将子查询:false添加到您的FindAlll