[英]LINQ to SQL Join orderby
我是LINQ的新手並加入,所以如果我問錯了,請原諒我。 我有兩張桌子
表格1
id name date
1 Mike 20-10-15
2 John 21-10-15
3 Sam 23-10-15
表2
id name date
1 Ashle 19-10-15
2 Lily 21-10-15
3 Jeni 22-10-15
4 April 23-10-15
我需要使用Joins的5條記錄,並且應該是orderby Date(最新記錄)。
你們能幫我嗎,我真的需要弄清楚Joins如何與orderby一起工作。 謝謝
編輯:他們是兩個不同的表,所以沒有外鍵,所以我想我不能使用Join,到目前為止我所做的就是這樣
var combinddata = (from t1 in db.Table1
select t1.id)
.Concat(from t2 in db.Table2
select t2.id);
我不知道如何只獲取5條記錄,如何在DateTime基礎上比較兩個表中的記錄。
輸出應為
您可以連接來自不同表的相等匿名類型。 如果您還選擇日期,則可以按降序對日期進行排序,並獲取前5條記錄:
Table1.Select (t1 =>
new
{
Id = t1.Id,
Name = t1.Name,
Date = t1.Date
}
).Concat(
Table2.Select (t2 =>
new
{
Id = t2.Id,
Name = t2.Name,
Date = t2.Date
}
))
.OrderByDescending (x => x.Date).Take(5)
請注意,這優先於Table1
項目。 如果合並結果中的項目5和6處於同一日期,但分別來自Table1
和Table2
,則只能從Table1
獲得該項目。
如果需要,您可以從此結果中僅選擇名稱,但我假設您的輸出僅顯示記錄的預期順序,而不顯示確切的預期結果。
試試這個
var combinddata = (from t1 in db.Table1
select t1.Name)
.Concat(from t2 in db.Table2
select t2.Name).OrderByDescending(x => x.date).Take(5);
var query =
from Table1 in table1
join Table2 in table2 on table1.id equals table2.id
orderby table1.date ascending
select table1.date;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.