update

2881099
2022-07-25 09:26:11 +08:00
parent 5962ce1667
commit 02f18068d1

@@ -28,13 +28,47 @@ FROM (
WHERE (a.[rownum] = 1)
```
场景2分组查询嵌套
场景2嵌套查询 + Join
WithTempQuery + From\<T2\> 或 FromQuery\<ISelect\<T2\>\> 可实现无限联表
```c#
fsql.Select<User1>()
.Where(a => a.Id < 1000)
.WithTempQuery(a => new
{
item = a,
rownum = SqlExt.RowNumber().Over().PartitionBy(a.Nickname).OrderBy(a.Id).ToValue()
})
.Where(a => a.rownum == 1)
//.From<UserExt>() //普通联表
.FromQuery(fsql.Select<UserExt>().Where(b => b.Id > 0)) //子查询联表
//.FromQuery(fsql.Select<UserExt, UserGroup, xxx>().WithTempQuery((a,b,c) => new { ... })) //子多表查询联表
.InnerJoin((a, b) => a.item.Id == b.UserId)
.ToList((a, b) => new
{
user = a.item,
rownum = a.rownum,
userext = b
});
```
```sql
SELECT ...
FROM (
SELECT a.[Id], a.[Nickname], row_number() over( partition by a.[Nickname] order by a.[Id]) [rownum]
FROM [User1] a ) a
INNER JOIN (SELECT a.[UserId], a.[Remark]
FROM [TwoTablePartitionBy_UserExt] a
WHERE (a.[UserId] > 0)) b ON a.[Id] = b.[UserId]
WHERE (a.[rownum] = 1)
```
场景3分组查询嵌套
待补充..
场景3嵌套查询 + Join
待补充..
---
## 子表Exists