数据库组件 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();