나는 한 다음 테이블 구조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;
을 시도하지만 예상대로이 작동하지 않았다. 내 질문 :
- 왜?
- 구문에 대한 조인 사용의 차이점은 무엇입니까? where where where cond1 & & cond2? 내 이해 쿼리 최적화 프로그램이 최적화됩니다.
- cond1 == var1 & & cond2 == var2와 괄호가있는 경우와 사용하지 않는 경우의 차이점은 무엇입니까? 이것은 괄호없이 이것을 구현할 수 있다는 특이한 것처럼 보입니다.
- 이 경우 어떤 유형의 쿼리가 필요합니까? 하위 쿼리를 수행하거나 그룹을 사용할 수 있지만 필요하면 100 % 확신 할 수는 없습니다. 예가 도움이 될 수 있습니다. 이 경우 부질의가 필요할 수도 있습니다.
감사합니다. 하지만 명시 적 조인없이이 작업을 수행 할 수 있습니까? 이것을 위해 selectmany를 사용하는 예제를 제공 할 수 있습니까? –
"LINQ-to-SQL은 해시 조인이 아닌 내부 조인을 생성합니다."응? 그릇된. Linq는 SQL 해시 조인을 생성하지 않습니다 ... 그것은 SQL을 생성합니다. 쿼리 최적화 프로그램은 사용자의 입력없이 통계를 기반으로 해시 조인을 생성합니다. –
@ David B - 죄송합니다 ... 나쁜 용어입니다. 교차 가입은 어떻습니까? 'u, *와 같은 usertype에서 u를 선택하고 t로 입력하십시오. '와 동일합니다. –