diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 925307dc0..d9284f215 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -873,9 +873,17 @@ namespace SqlSugar public IUpdateable In(Expression> inField, ISugarQueryable childQueryExpression) { var lamResult = UpdateBuilder.GetExpressionValue(inField, ResolveExpressType.FieldSingle); + this.UpdateBuilder.LambdaExpressions.ParameterIndex = childQueryExpression.QueryBuilder.LambdaExpressions.ParameterIndex+1; var fieldName = lamResult.GetResultString(); - var sql = childQueryExpression.ToSql(); - Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {sql.Key} ) SUBDEL) ", sql.Value); + if (!this.UpdateBuilder.SetValues.Any()) + { + var sql = childQueryExpression.ToSql(); + Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {sql.Key} ) SUBDEL) ", sql.Value); + } + else + { + Where($" {fieldName} IN ( SELECT {fieldName} FROM ( {childQueryExpression.ToSqlString()} ) SUBDEL) "); + } return this; } public IUpdateable WhereIF(bool isWhere, Expression> expression)