mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-20 07:10:56 +08:00
update
9
多表查询.md
9
多表查询.md
@@ -185,6 +185,15 @@ fsql.Select<Topic>().ToList(a => new
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.TopicId == a.Id).ToList()
|
||||
});
|
||||
|
||||
fsql.Select<Topic>()
|
||||
.GroupBy(a => new { a.Author })
|
||||
.WithTempQuery(a => new { Author = a.Key.Author, Count = a.Count() })
|
||||
.ToList(a => new {
|
||||
a.Author, a.Count,
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.Author == a.Author).ToList()
|
||||
});
|
||||
```
|
||||
|
||||
## 10、集合属性
|
||||
|
||||
32
嵌套查询.md
32
嵌套查询.md
@@ -239,8 +239,8 @@ INNER JOIN (
|
||||
|
||||
```csharp
|
||||
fsql.Select<Topic>()
|
||||
.Where(a => fsql.Select<Topic>().As("b").Where(b => b.Id == a.Id).Any())
|
||||
.ToList();
|
||||
.Where(a => fsql.Select<Topic>().As("b").Where(b => b.Id == a.Id).Any())
|
||||
.ToList();
|
||||
//SELECT a.[Id], a.[Title], a.[Clicks], a.[CreateTime], a.[CategoryId]
|
||||
//FROM [Topic] a
|
||||
//WHERE (exists(SELECT 1
|
||||
@@ -255,8 +255,8 @@ fsql.Select<Topic>()
|
||||
|
||||
```csharp
|
||||
fsql.Select<Topic>()
|
||||
.Where(a => fsql.Select<Topic>().As("b").ToList(b => b.Id).Contains(a.Id))
|
||||
.ToList();
|
||||
.Where(a => fsql.Select<Topic>().As("b").ToList(b => b.Id).Contains(a.Id))
|
||||
.ToList();
|
||||
//SELECT a.[Id], a.[Title], a.[Clicks], a.[CreateTime], a.[CategoryId]
|
||||
//FROM [Topic] a
|
||||
//WHERE (((a.[Id]) in (SELECT b.[Id]
|
||||
@@ -269,8 +269,8 @@ v1.8.0+ string.Join + ToList 实现将子查询的多行结果,拼接为一个
|
||||
|
||||
```csharp
|
||||
fsql.Select<Topic>().ToList(a => new {
|
||||
id = a.Id,
|
||||
concat = string.Join(",", fsql.Select<StringJoin01>().ToList(b => b.Id))
|
||||
id = a.Id,
|
||||
concat = string.Join(",", fsql.Select<StringJoin01>().ToList(b => b.Id))
|
||||
});
|
||||
//SELECT a.[Id], (SELECT group_concat(b.[Id] separator ',')
|
||||
// FROM [StringJoin01] b)
|
||||
@@ -280,13 +280,13 @@ fsql.Select<Topic>().ToList(a => new {
|
||||
## 子表First/Count/Sum/Max/Min/Avg
|
||||
```csharp
|
||||
fsql.Select<Category>().ToList(a => new {
|
||||
all = a,
|
||||
first = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).First(b => b.Id),
|
||||
count = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Count(),
|
||||
sum = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Sum(b => b.Clicks),
|
||||
max = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Max(b => b.Clicks),
|
||||
min = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Min(b => b.Clicks),
|
||||
avg = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Avg(b => b.Clicks)
|
||||
all = a,
|
||||
first = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).First(b => b.Id),
|
||||
count = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Count(),
|
||||
sum = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Sum(b => b.Clicks),
|
||||
max = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Max(b => b.Clicks),
|
||||
min = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Min(b => b.Clicks),
|
||||
avg = fsql.Select<Topic>().Where(b => b.CategoryId == a.Id).Avg(b => b.Clicks)
|
||||
});
|
||||
```
|
||||
|
||||
@@ -296,9 +296,9 @@ fsql.Select<Category>().ToList(a => new {
|
||||
//最多执行3次 SQL
|
||||
fsql.Select<Topic>().ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.TopicId == a.Id).ToList()
|
||||
all = a,
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.TopicId == a.Id).ToList()
|
||||
});
|
||||
|
||||
//分组之后,最多执行3次 SQL
|
||||
|
||||
20
表达式函数.md
20
表达式函数.md
@@ -112,9 +112,9 @@ fsql.Select<T1, T2>()
|
||||
.InnerJoin((a, b) => b.Id == a.Id)
|
||||
.ToList((a, b) => new
|
||||
{
|
||||
Id = a.Id,
|
||||
EdiId = b.Id,
|
||||
over1 = SqlExt.Rank().Over().OrderBy(a.Id).OrderByDescending(b.EdiId).ToValue()
|
||||
Id = a.Id,
|
||||
EdiId = b.Id,
|
||||
over1 = SqlExt.Rank().Over().OrderBy(a.Id).OrderByDescending(b.EdiId).ToValue()
|
||||
});
|
||||
```
|
||||
|
||||
@@ -190,13 +190,13 @@ fsql.Select<Topic>().ToList(a => new
|
||||
});
|
||||
|
||||
fsql.Select<Topic>()
|
||||
.GroupBy(a => new { a.Author })
|
||||
.WithTempQuery(a => new { Author = a.Key.Author, Count = a.Count() })
|
||||
.ToList(a => new {
|
||||
a.Author, a.Count,
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.Author == a.Author).ToList()
|
||||
});
|
||||
.GroupBy(a => new { a.Author })
|
||||
.WithTempQuery(a => new { Author = a.Key.Author, Count = a.Count() })
|
||||
.ToList(a => new {
|
||||
a.Author, a.Count,
|
||||
list1 = fsql.Select<T2>().ToList(),
|
||||
list2 = fsql.Select<T2>().Where(b => b.Author == a.Author).ToList()
|
||||
});
|
||||
```
|
||||
|
||||
## 自定义解析
|
||||
|
||||
10
返回数据.md
10
返回数据.md
@@ -171,9 +171,9 @@ List<dynamic> t13 = fsql.Ado.Query<dynamic>("select * from song");
|
||||
## 11、WithSql
|
||||
```csharp
|
||||
fsql.Select<Topic>()
|
||||
.WithSql("select * from Topic where clicks > @val", new { val = 10 })
|
||||
.Page(1, 10)
|
||||
.ToList()
|
||||
.WithSql("select * from Topic where clicks > @val", new { val = 10 })
|
||||
.Page(1, 10)
|
||||
.ToList()
|
||||
//SELECT a.`Id`, a.`Clicks`, a.`CategoryId`, a.`Title`, a.`CreateTime`
|
||||
//FROM (select * from Topic where clicks > @val) a
|
||||
```
|
||||
@@ -190,8 +190,8 @@ list.Add(new Topic { ... });
|
||||
list.Add(new Topic { ... });
|
||||
|
||||
fsql.Select<Topic>()
|
||||
.WithMemory(list)
|
||||
.ToList()
|
||||
.WithMemory(list)
|
||||
.ToList()
|
||||
//SELECT a.`Id`, a.`Clicks`, a.`CategoryId`, a.`Title`, a.`CreateTime`
|
||||
//FROM (
|
||||
// SELECT ...
|
||||
|
||||
Reference in New Issue
Block a user