update

2881099
2022-09-13 18:41:39 +08:00
parent be74c6f3da
commit 115f39e024
2 changed files with 36 additions and 3 deletions

@@ -158,6 +158,39 @@ INNER JOIN (
) b ON a.[Id] = b.[GroupId]
```
## WithParameters 参数化共享
开启参数化查询功能后,使用 WithParameters 共享参数化,避免产生相同的参数名称:
```csharp
var dbpars = new List<DbParameter>();
var id1 = 1;
var id2 = 2;
var sql = fsql.Select<User1>()
.WithParameters(dbpars)
.Where(a => a.Id == id1)
.FromQuery(
fsql.Select<User1>()
.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

@@ -2,7 +2,7 @@
GroupBy + WithTempQuery(嵌套查询) + FromQuery + UnionAll 组合使用,会让查询功能更加强大、灵活。
1、单表 UNION ALL
## 单表 UNION ALL
```csharp
var sql = fsql.Select<User>().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<User, Group>()
@@ -78,7 +78,7 @@ WHERE ((a."Id" = 1 OR a."Id" = 2))
})
```
3、WithParameters 参数化共享
## WithParameters 参数化共享
开启参数化查询功能后,使用 WithParameters 共享参数化,避免产生相同的参数名称: