mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 增加 ISelect<11..16> 16 个多联表查询;
This commit is contained in:
@ -921,7 +921,7 @@ FROM ""TB_TOPIC22"" a", subquery);
|
||||
var subquery = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToSql();
|
||||
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||
FROM ""TB_TOPIC22"" a
|
||||
WHERE (((cast(a.""ID"" as char)) in (SELECT b.""TITLE""
|
||||
WHERE (((cast(a.""ID"" as blob sub_type 1)) in (SELECT b.""TITLE""
|
||||
FROM ""TB_TOPIC22"" b)))", subquery);
|
||||
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||
}
|
||||
|
@ -190,6 +190,79 @@ namespace FreeSql.Tests
|
||||
;
|
||||
", ddlsql);
|
||||
|
||||
var select16Sql1 = g.sqlite.Select<userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo>()
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => b.userid == a.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => c.userid == b.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => d.userid == c.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => e.userid == d.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => f.userid == e.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => g.userid == f.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => h.userid == g.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => i.userid == h.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => j.userid == i.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => k.userid == j.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => l.userid == k.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => m.userid == l.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => n.userid == m.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => o.userid == n.userid)
|
||||
.InnerJoin((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => p.userid == o.userid)
|
||||
.ToSql((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => p);
|
||||
Assert.Equal(@"SELECT p.""userid"" as1, p.""badgenumber"" as2, p.""ssn"" as3, p.""IDCardNo"" as4, p.""name"" as5, p.""title"" as6, p.""birthday"" as7, p.""hiredday"" as8, p.""hetongdate"" as9, p.""street"" as10, p.""zip"" as11, p.""ophone"" as12, p.""pager"" as13, p.""fphone"" as14, p.""CardNo"" as15, p.""email"" as16, p.""idcardvalidtime"" as17, p.""homeaddress"" as18, p.""minzu"" as19, p.""leavedate"" as20, p.""loginpass"" as21, p.""picurl"" as22, p.""managerid"" as23
|
||||
FROM ""userinfo"" a
|
||||
INNER JOIN ""userinfo"" b ON b.""userid"" = a.""userid""
|
||||
INNER JOIN ""userinfo"" c ON c.""userid"" = b.""userid""
|
||||
INNER JOIN ""userinfo"" d ON d.""userid"" = c.""userid""
|
||||
INNER JOIN ""userinfo"" e ON e.""userid"" = d.""userid""
|
||||
INNER JOIN ""userinfo"" f ON f.""userid"" = e.""userid""
|
||||
INNER JOIN ""userinfo"" g ON g.""userid"" = f.""userid""
|
||||
INNER JOIN ""userinfo"" h ON h.""userid"" = g.""userid""
|
||||
INNER JOIN ""userinfo"" i ON i.""userid"" = h.""userid""
|
||||
INNER JOIN ""userinfo"" j ON j.""userid"" = i.""userid""
|
||||
INNER JOIN ""userinfo"" k ON k.""userid"" = j.""userid""
|
||||
INNER JOIN ""userinfo"" l ON l.""userid"" = k.""userid""
|
||||
INNER JOIN ""userinfo"" m ON m.""userid"" = l.""userid""
|
||||
INNER JOIN ""userinfo"" n ON n.""userid"" = m.""userid""
|
||||
INNER JOIN ""userinfo"" o ON o.""userid"" = n.""userid""
|
||||
INNER JOIN ""userinfo"" p ON p.""userid"" = o.""userid""", select16Sql1);
|
||||
var select16Sql2 = g.sqlite.Select<userinfo>()
|
||||
.From<userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo, userinfo>(
|
||||
(s, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => s
|
||||
.InnerJoin(a => b.userid == a.userid)
|
||||
.InnerJoin(a => c.userid == b.userid)
|
||||
.InnerJoin(a => d.userid == c.userid)
|
||||
.InnerJoin(a => e.userid == d.userid)
|
||||
.InnerJoin(a => f.userid == e.userid)
|
||||
.InnerJoin(a => g.userid == f.userid)
|
||||
.InnerJoin(a => h.userid == g.userid)
|
||||
.InnerJoin(a => i.userid == h.userid)
|
||||
.InnerJoin(a => j.userid == i.userid)
|
||||
.InnerJoin(a => k.userid == j.userid)
|
||||
.InnerJoin(a => l.userid == k.userid)
|
||||
.InnerJoin(a => m.userid == l.userid)
|
||||
.InnerJoin(a => n.userid == m.userid)
|
||||
.InnerJoin(a => o.userid == n.userid)
|
||||
.InnerJoin(a => p.userid == o.userid)
|
||||
)
|
||||
.ToSql((a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => p);
|
||||
Assert.Equal(@"SELECT p.""userid"" as1, p.""badgenumber"" as2, p.""ssn"" as3, p.""IDCardNo"" as4, p.""name"" as5, p.""title"" as6, p.""birthday"" as7, p.""hiredday"" as8, p.""hetongdate"" as9, p.""street"" as10, p.""zip"" as11, p.""ophone"" as12, p.""pager"" as13, p.""fphone"" as14, p.""CardNo"" as15, p.""email"" as16, p.""idcardvalidtime"" as17, p.""homeaddress"" as18, p.""minzu"" as19, p.""leavedate"" as20, p.""loginpass"" as21, p.""picurl"" as22, p.""managerid"" as23
|
||||
FROM ""userinfo"" a
|
||||
INNER JOIN ""userinfo"" b ON b.""userid"" = a.""userid""
|
||||
INNER JOIN ""userinfo"" c ON c.""userid"" = b.""userid""
|
||||
INNER JOIN ""userinfo"" d ON d.""userid"" = c.""userid""
|
||||
INNER JOIN ""userinfo"" e ON e.""userid"" = d.""userid""
|
||||
INNER JOIN ""userinfo"" f ON f.""userid"" = e.""userid""
|
||||
INNER JOIN ""userinfo"" g ON g.""userid"" = f.""userid""
|
||||
INNER JOIN ""userinfo"" h ON h.""userid"" = g.""userid""
|
||||
INNER JOIN ""userinfo"" i ON i.""userid"" = h.""userid""
|
||||
INNER JOIN ""userinfo"" j ON j.""userid"" = i.""userid""
|
||||
INNER JOIN ""userinfo"" k ON k.""userid"" = j.""userid""
|
||||
INNER JOIN ""userinfo"" l ON l.""userid"" = k.""userid""
|
||||
INNER JOIN ""userinfo"" m ON m.""userid"" = l.""userid""
|
||||
INNER JOIN ""userinfo"" n ON n.""userid"" = m.""userid""
|
||||
INNER JOIN ""userinfo"" o ON o.""userid"" = n.""userid""
|
||||
INNER JOIN ""userinfo"" p ON p.""userid"" = o.""userid""", select16Sql2);
|
||||
|
||||
|
||||
var sqlxx = g.pgsql.InsertOrUpdate<userinfo>().SetSource(new userinfo { userid = 10 }).UpdateColumns(a => new { a.birthday, a.CardNo }).ToSql();
|
||||
|
||||
var aff1 = g.sqlite.GetRepository<Edi, long>().Delete(10086);
|
||||
|
Reference in New Issue
Block a user