内部結合
var ij = from s in Sales join t in Titles on
s.Title_id equals t.Title_id
select new
{
TitleId = s.Title_id,
OrderNum = s.Ord_num,
Title = t.Title
};
ij.Dump();
SELECT [t0].[title_id] AS [TitleId], [t0].[ord_num] AS [OrderNum], [t1].[title] AS [Title]
FROM [sales] AS [t0]
INNER JOIN [titles] AS [t1] ON [t0].[title_id] = [t1].[title_id]
外部結合
var lr = from sa in Sales
join t in Titles on sa.Title_id equals t.Title_id into tempTitle
from title in tempTitle.DefaultIfEmpty()
join st in Stores on sa.Stor_id equals st.Stor_id into tempStore
from store in tempStore.DefaultIfEmpty()
select new
{
TitleId = sa.Title_id,
OrderNum = sa.Ord_num,
Title = title.Title,
StoreName = store.Stor_name
};
lr.Dump();
SELECT [t0].[title_id] AS [TitleId], [t0].[ord_num] AS [OrderNum], [t1].[title] AS [Title], [t2].[stor_name] AS [StoreName]
FROM [sales] AS [t0]
LEFT OUTER JOIN [titles] AS [t1] ON [t0].[title_id] = [t1].[title_id]
LEFT OUTER JOIN [stores] AS [t2] ON [t0].[stor_id] = [t2].[stor_id]