1
我有一個非常基本的SQL查詢我試圖重現:LINQ vb.net GROUP BY - 選擇聯接的列
SELECT t1.id, t1.name, count(*), min(t2.inserted) as inserted_first, max(t2.inserted) as inserted_last
FROM tbl1 t1
LEFT JOIN tbl2 t2 ON t1.id=t2.tbl1_id
WHERE t2.search=15
GROUP BY t1.id, t1.name
這工作非常適合我。它允許我通過t1.id和t1.name的唯一項進行分組,但也可以獲得此對的出現次數,以及鏈接表的t2.inserted的最小值和最大值。問題是,現在當我把它變成LINQ時,我得到:
Dim query =
From t1 In ent.TBL1
Join t2 In ent.TBL2 On t1.id Equals t2.tbl1_id
Where (t2.search=15)
Group t1 By t1.id, t1.name Into Group
Select New With {
.id = id,
.name = name,
.count = Group.Count,
.min_value = ???,
.max_Value = ???
}
我失去了我能做些什麼來選擇最小和最大值。 Group.Min會工作,如果它與分組表相同,但由於它是在t2中,因此我無法引用它。我也不能將它添加到我的團隊中,因爲它不同。
請注意,tbl2鏈接到tbl2.tbl1_id - > tbl1.id上的tbl1。此外,這是我的問題的一個虛弱的例子,而不是真正的現場模式。
我很欣賞在這個問題上
當然,我可以隨時移植C#。我將在今天晚些時候嘗試,因爲我正在結束一個12小時的工作之夜。謝謝! –