diff --git a/嵌套查询.md b/嵌套查询.md index cac0c5c..340e988 100644 --- a/嵌套查询.md +++ b/嵌套查询.md @@ -158,6 +158,39 @@ INNER JOIN ( ) b ON a.[Id] = b.[GroupId] ``` +## WithParameters 参数化共享 + +开启参数化查询功能后,使用 WithParameters 共享参数化,避免产生相同的参数名称: + +```csharp +var dbpars = new List(); + +var id1 = 1; +var id2 = 2; +var sql = fsql.Select() + .WithParameters(dbpars) + .Where(a => a.Id == id1) + + .FromQuery( + fsql.Select() + .WithParameters(dbpars) + .Where(a => a.Id == id2) + ) + .ToSql(); +``` + +```sql +SELECT a."Id", a."GroupId", a."Username" +FROM ( SELECT a."Id", a."GroupId", a."Username" + FROM "User1" a + WHERE (a."Id" = @exp_0) + UNION ALL + SELECT a."Id", a."GroupId", a."Username" + FROM "User1" a + WHERE (a."Id" = @exp_1) ) a +WHERE ((a."Id" = 1 OR a."Id" = 2)) +``` + --- ## 子表Exists diff --git a/联合查询.md b/联合查询.md index 0e5176f..123e020 100644 --- a/联合查询.md +++ b/联合查询.md @@ -2,7 +2,7 @@ GroupBy + WithTempQuery(嵌套查询) + FromQuery + UnionAll 组合使用,会让查询功能更加强大、灵活。 -1、单表 UNION ALL +## 单表 UNION ALL ```csharp var sql = fsql.Select().Where(a => a.Id == 1) @@ -30,7 +30,7 @@ FROM ( SELECT a."Id", a."GroupId", a."Username" WHERE ((a."Id" = 1 OR a."Id" = 2)) ``` -2、多表 UNION ALL +## 多表 UNION ALL ```csharp var sql = fsql.Select() @@ -78,7 +78,7 @@ WHERE ((a."Id" = 1 OR a."Id" = 2)) }) ``` -3、WithParameters 参数化共享 +## WithParameters 参数化共享 开启参数化查询功能后,使用 WithParameters 共享参数化,避免产生相同的参数名称: