我下面的表結構Linq-to-sql加入/在哪裏?
用戶 ID
類型 ID isBool
UsersTypes 用戶ID 類型
我要選擇基於ID和isBool所有UserTypes 。
我嘗試這個查詢
var q = from usertype in usertypes
from type in types
where type.isBool == false
where userstypes.user == id
select usertype;
但如預期並沒有工作。我的問題是:
- 爲什麼?
- 在使用語法上的連接有沒有什麼區別vs哪裏,哪裏vs哪裏cond1 & & cond2?我的理解是查詢優化器將優化。
- 使用哪裏cond1 == var1 & & cond2 == var2有和沒有括號有什麼區別嗎?這似乎有點奇怪,有可能沒有括號來構建它
- 在這種情況下我需要什麼類型的查詢?我可以看到,我可以做一個子查詢或使用一個組,但不是100%確定是否需要。一個例子可能會有所幫助。我想在這種情況下可能需要子查詢。
謝謝。但是如果沒有顯式連接,可以做到這一點嗎?你能否提供使用selectmany的例子呢? – 2010-06-03 19:13:41
「LINQ-to-SQL將生成內部連接而不是哈希連接」咦?假。 Linq to sql不會生成散列連接...它會生成sql。查詢優化器根據統計信息生成散列連接,而無需輸入。 – 2010-06-03 19:22:30
@大衛B - 對不起......壞的術語。交叉連接如何?相當於從usertype中選擇u作爲u,鍵入t' – 2010-06-03 19:43:05