很久没来了,最近在研究LINQ, 下面2句SQL是否等价?
在LINQ中,如果要产生INNER JOIN,就必须要在表的设计器中加上 PK-FK关系
但是。。。我决定不加所以这样写:
- C# code
var query = from customerRow in db.CustomerTable from orderRow in db.OrderTable where customerRow.CustomerID == orderRow.CustomerID select new { customerRow.CustomerID, orderRow.OrderID };这样得到的SQL是:
- SQL code
SELECT [t0].[CustomerID], [t1].[OrderID]FROM [dbo].[tblCustomer] AS [t0], [dbo].[tblOrder] AS [t1]WHERE [t0].[CustomerID] = [t1].[CustomerID]
这句SQL是否和下面的SQL等价?
- SQL code
SELECT tblCustomer.[CustomerID], tblOrder.[OrderID]FROM tblCustomerINNER JOIN tblOrder ON tblCustomer.[CustomerID] = tblOrder.[OrderID]
性能是否有差异??
[解决办法]
我认为是一样的.
a.id=b.id是内连接 on a.id = b.id的另外一种写法而已.
[解决办法]
一个是旧式的写法,一个是sql92的标准写法,无差异