mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-05 16:00:52 +08:00
update
27
多表查询.md
27
多表查询.md
@@ -91,9 +91,9 @@ fsql.Select<Topic>()
|
||||
//SELECT a.`Id`, a.`Title`, a.`Clicks`, a.`CreateTime`, a.`CategoryId`
|
||||
//FROM `Topic` a
|
||||
//WHERE (exists(SELECT 1
|
||||
// FROM `Topic` b
|
||||
// WHERE (b.`Id` = a.`Id`)
|
||||
// limit 0,1))
|
||||
// FROM `Topic` b
|
||||
// WHERE (b.`Id` = a.`Id`)
|
||||
// limit 0,1))
|
||||
```
|
||||
|
||||
> 提示:由于子查询的实体类与上层相同,使用 As("b") 指明别名,以便区分
|
||||
@@ -107,10 +107,23 @@ fsql.Select<Topic>()
|
||||
//SELECT a.`Id`, a.`Title`, a.`Clicks`, a.`CreateTime`, a.`CategoryId`
|
||||
//FROM `Topic` a
|
||||
//WHERE (((a.`Id`) in (SELECT b.`Id`
|
||||
// FROM `Topic` b)))
|
||||
// FROM `Topic` b)))
|
||||
```
|
||||
|
||||
## 6、子表First/Count/Sum/Max/Min/Avg
|
||||
## 6、子表Join
|
||||
|
||||
```csharp
|
||||
fsql.Select<Topic>()
|
||||
.Where(a => string.Join(",", fsql.Select<StringJoin01>().ToList(b => b.Id))
|
||||
.ToList();
|
||||
//SELECT (SELECT group_concat(b.`name` separator ',')
|
||||
// FROM `StringJoin01` b) as1
|
||||
//FROM `Topic` a
|
||||
```
|
||||
|
||||
> 提示:子查询 string.Join + ToList 适配了 sqlserver/pgsql/oracle/mysql/sqlite/达梦/金仓 [#405](https://github.com/dotnetcore/FreeSql/issues/405)
|
||||
|
||||
## 7、子表First/Count/Sum/Max/Min/Avg
|
||||
```csharp
|
||||
fsql.Select<Category>().ToList(a => new {
|
||||
all = a,
|
||||
@@ -123,7 +136,7 @@ fsql.Select<Category>().ToList(a => new {
|
||||
});
|
||||
```
|
||||
|
||||
## 7、AsSelect
|
||||
## 8、AsSelect
|
||||
|
||||
```csharp
|
||||
fsql.Select<Category>()
|
||||
@@ -141,7 +154,7 @@ fsql.Select<Category>()
|
||||
|
||||
将集合属性快速转换为 ISelect 进行子查询操作。
|
||||
|
||||
## 8、WhereCascade
|
||||
## 9、WhereCascade
|
||||
|
||||
多表查询时,像isdeleted每个表都给条件,挺麻烦的。WhereCascade使用后生成sql时,所有表都附上这个条件。
|
||||
|
||||
|
||||
2
更新日志.md
2
更新日志.md
@@ -5,7 +5,7 @@
|
||||
|
||||
- **增加 DbContext/Repository BeginEdit/EndEdit 批量编辑数据的方法 #397;**
|
||||
- **增加 FreeSql.Provider.SqlServerForSystem 使用 System.Data.SqlClient.dll 兼容更多运行平台 #401 #398 #395 #392 #391;**
|
||||
- 增加 SqlServer lambda 表达式树解析子查询 ToList + string.Join() 产生 类似 group_concat 的效果;#405
|
||||
- 增加 lambda 表达式树解析子查询 ToList + string.Join() 产生 类似 group_concat 的效果(适配了 sqlserver/pgsql/oracle/mysql/sqlite/达梦/金仓);#405
|
||||
- 修复 fsql.InsertOrUpdate 在同线程事务模式内使用的 bug #402;
|
||||
- 修复 fsql.Ado.ExecuteDataTable 当记录不存在时,未返回 Columns 设置 #403;
|
||||
- 修复 IInsert/IUpdate BatchProgress 异步执行不生效的 bug;
|
||||
|
||||
Reference in New Issue
Block a user