数据库组件 Hxj.Data (十四) (联合查询)2011-07-21 博客园 steven hu联合查询在前面的例子中已经出现过,只不过没有细说。先来个例子吧
DbSession.Default.From<Customers>()
.InnerJoin<Orders>(Customers._.CustomerID == Orders._.CustomerID)
.ToDataTable();生成的sql
Text:
SELECT * FROM [Customers] INNER JOIN [Orders] ON ([Customers].[CustomerID] = [Orders].[CustomerID])是非常简单操作就完成了。
| 方法 | 联合查询(sql) |
| InnerJoin | inner join |
| LeftJoin | left join |
| RightJoin | right join |
| CrossJoin | cross join |
| FullJoin | full join |
| Union | union |
| UnionAll | union all |
还是上例子清爽一些
DbSession.Default.From<Customers>()
.LeftJoin<Orders>(Customers._.CustomerID == Orders._.CustomerID)
.Where(Customers._.Country == "USA")
.ToDataTable();生成的sql
Text:
SELECT * FROM [Customers]
LEFT OUTER JOIN [Orders]
ON ([Customers].[CustomerID] = [Orders].[CustomerID])
WHERE [Customers].[Country] = @e3c66f9aa65c498abfd76908621b567a
Parameters:
@e3c66f9aa65c498abfd76908621b567a[String] = USAInnerJoin、LeftJoin、RightJoin、CrossJoin、FullJoin这个操作都是类似的。三个表及以上关联例如
DbSession.Default.From<Customers>()
.InnerJoin<Orders>(Customers._.CustomerID == Orders._.CustomerID)
.InnerJoin<Order_Details>(Order_Details._.OrderID == Orders._.OrderID)
.Where(Customers._.Country == "USA")
.ToDataTable();