약 LINQ는 데이터베이스 (왼쪽 가입) 오른쪽 연결 (오른쪽 가입) 차이가 왼쪽 연결 연결 문제를 왼쪽

 오늘, 일을 비즈니스 LINQ 내가 연결을 사용하고자 할 때 자격을 갖춘 후에 표시되는 조건을 추가하는 것으로 확인되었습니다 왼쪽

따라서, 데이터는 다음 조건에 첨가되는 경우 작동하지 않는다

                VAR userPer = Convert.ToInt32 (ID); //前台传过来的ID의 
                VAR 역할 = DB.AdminUserRole.Where (m => m.id == userPer) .FirstOrDefault (); 
                DB.AdminPages 안으로 VAR resultTitle는 Q =로부터 
                                  q.id에 DB.AdminPagePermission.Where (p => p.RoleId == role.RoleId && p.Status == 1) 승에 조인 왼쪽으로 w.PageId 동일 
                                  에서 QW로부터 left.DefaultIfEmpty ()가 
                                  새에 DB.Classification에 status_kbn 조인 {발 = q.Status, KBN = "TableStatus은"} 새로운 같다 {발 = status_kbn.int_value.Value, KBN = status_kbn.type} 
                                  // 여기서 qw.RoleId = role.RoleId =  
                                  새로운 선택
                                  { 
                                      ID = q.id, 
                                      표제 = q.PageTitle, 
                                      PID = q.ParentPageId, 
                                      페이지 id = q.id, 
                                      정렬 = q.Sort, 
                                      하는 statusText = status_kbn.texts를 
                                      // 왼쪽 연결에서 참 또는 거짓 판정 결과 조회 
                                      확인 !? = QW = null이 true로 : 거짓, 
                                  }; 
                var에 = resultTitle.ToList 결과 (); 
                반환 JSON (결과, JsonRequestBehavior.AllowGet);

  그것은 할 수 있도록

 

 

전파

 

 

왼쪽 / 오른쪽 가입 / 내부 관련 조인

왼쪽과 오른쪽 연결 문장 요약에서 :

왼쪽 연결 위치를 오른쪽 테이블 만 그림자 만 왼쪽 테이블에 영향을 바로 연결.

는 왼쪽 가입

* SELECT를 발 tbl1.ID TBL1 왼쪽 = tbl2.ID TBL2 가입

데이터 접속 이후에 검색 결과의 표시가 남아 어디 충족 TBL1 및 TBL2 모든 데이터의 조건.

간단히 왼쪽 오른쪽 테이블에 영향을 미칠 가입

오른쪽 가입

에서 SELECT *를 가입 TBL2 곳 tbl1.ID TBL1 오른쪽 = tbl2.ID

검색은 모든 데이터의 조건 TBL1의 TBL2가 만족하는 데이터를 초래한다.

오른쪽 영향을 가입 간단히 테이블의 왼쪽에있다.

이너 가입

가 ON = tbl2.ID TBL2 가입 SELECT * TBL1 FROM 내부 tbl1.ID를

동일한 기능 및 * TBL1에서 TBL2 여기서 tbl1.id 선택 = tbl2.id.을

기타 관련 정보

숨겨진 연결로 알려진 데이터베이스 언어에 사용되는 1 어디에요 연결 명령문 절. 연결 INNER 연결이 지배적입니다 생산 ON 절 ...... 가입하세요. 결과는 동일하므로, 본질적인 차이가없고, 생성 INNER JOIN 연결 관계 (다른 파라미터 지배적 연결 가입도있다). 그러나! 사양 및 데이터베이스 언어의 개발 암시 적 연결은 점차 새로운 데이터베이스 언어는 기본적으로 내재적 연결, 모든 지배적 인 연결을 포기했다, 단계적있다.

연결이, 당신이이 절에 가입 사용할 수 있지만, 같은 테이블에 연결되어있을 때, 관심을 지불 별칭, 그렇지 않으면 오류를 정의하는 방법 2. 없음 문제!

A> 내부 조인 테이블로서 이해 갖는다 "작동 가능하게 연결된"개의 데이터 표시 왼쪽 조인 기존의 이러한 디스플레이 a.field = b.field에리스트로서 "좌측 디스플레이가"으로서 이해 \\ B 모두 데이터의 데이터, 데이터가 B의 널 표시되지도 않은

B>는 바로 가입 : a.field = b.field에 예를 들면 "우측 화면"과 같이, 표 B에 표시된 및 \\ B의 모든 데이터는, B가 데이터에 존재하는, A는 널 (null)에 데이터가없는

전체 C> 조인 : 두 테이블의 모든 데이터를 "완전 접속"으로서 이해 프로그램이 실제 내부 + (내부가 좌측) + (내부 우측)

. 전체 전도, ZuoLian 오른쪽 공동 3 테이블 .join 초등 외측으로 나눌 수는 세 가지 유형의 가입.
아웃 리치 완전히 두 테이블의 모든 레코드를 포함합니다.
좌파는 반대의 권리와 그와 권리에 의해 보충, 기본 테이블의 왼쪽

원칙을 따르도록 좋은 시점에서 데이터베이스 쿼리 성능을 4. 일반 :

테이블을 수행 할 때 앞의 쿼리 테이블, 대형 테이블 조인, 작은 테이블
, 별칭 테이블을 사용하지 않고는 접두사 필드에 의해 테이블의 다른 필드를 구분하는
연결 상태 테이블 전에 쓰기에 쿼리 조건에 제약
인덱스 쿼리를 사용 가능한 필드

왼쪽 / 오른쪽 가입 / 내부 관련 조인

왼쪽과 오른쪽 연결 문장 요약에서 :

왼쪽 연결 위치를 오른쪽 테이블 만 그림자 만 왼쪽 테이블에 영향을 바로 연결.

는 왼쪽 가입

* SELECT를 발 tbl1.ID TBL1 왼쪽 = tbl2.ID TBL2 가입

데이터 접속 이후에 검색 결과의 표시가 남아 어디 충족 TBL1 및 TBL2 모든 데이터의 조건.

간단히 왼쪽 오른쪽 테이블에 영향을 미칠 가입

오른쪽 가입

에서 SELECT *를 가입 TBL2 곳 tbl1.ID TBL1 오른쪽 = tbl2.ID

검색은 모든 데이터의 조건 TBL1의 TBL2가 만족하는 데이터를 초래한다.

오른쪽 영향을 가입 간단히 테이블의 왼쪽에있다.

이너 가입

가 ON = tbl2.ID TBL2 가입 SELECT * TBL1 FROM 내부 tbl1.ID를

동일한 기능 및 * TBL1에서 TBL2 여기서 tbl1.id 선택 = tbl2.id.을

기타 관련 정보

숨겨진 연결로 알려진 데이터베이스 언어에 사용되는 1 어디에요 연결 명령문 절. 연결 INNER 연결이 지배적입니다 생산 ON 절 ...... 가입하세요. 결과는 동일하므로, 본질적인 차이가없고, 생성 INNER JOIN 연결 관계 (다른 파라미터 지배적 연결 가입도있다). 그러나! 사양 및 데이터베이스 언어의 개발 암시 적 연결은 점차 새로운 데이터베이스 언어는 기본적으로 내재적 연결, 모든 지배적 인 연결을 포기했다, 단계적있다.

연결이, 당신이이 절에 가입 사용할 수 있지만, 같은 테이블에 연결되어있을 때, 관심을 지불 별칭, 그렇지 않으면 오류를 정의하는 방법 2. 없음 문제!

A> 내부 조인 테이블로서 이해 갖는다 "작동 가능하게 연결된"개의 데이터 표시 왼쪽 조인 기존의 이러한 디스플레이 a.field = b.field에리스트로서 "좌측 디스플레이가"으로서 이해 \\ B 모두 데이터의 데이터, 데이터가 B의 널 표시되지도 않은

B>는 바로 가입 : a.field = b.field에 예를 들면 "우측 화면"과 같이, 표 B에 표시된 및 \\ B의 모든 데이터는, B가 데이터에 존재하는, A는 널 (null)에 데이터가없는

전체 C> 조인 : 두 테이블의 모든 데이터를 "완전 접속"으로서 이해 프로그램이 실제 내부 + (내부가 좌측) + (내부 우측)

. 전체 전도, ZuoLian 오른쪽 공동 3 테이블 .join 초등 외측으로 나눌 수는 세 가지 유형의 가입.
아웃 리치 완전히 두 테이블의 모든 레코드를 포함합니다.
좌파는 반대의 권리와 그와 권리에 의해 보충, 기본 테이블의 왼쪽

원칙을 따르도록 좋은 시점에서 데이터베이스 쿼리 성능을 4. 일반 :

테이블을 수행 할 때 앞의 쿼리 테이블, 대형 테이블 조인, 작은 테이블
, 별칭 테이블을 사용하지 않고는 접두사 필드에 의해 테이블의 다른 필드를 구분하는
연결 상태 테이블 전에 쓰기에 쿼리 조건에 제약
인덱스 쿼리를 사용 가능한 필드

추천

출처www.cnblogs.com/qiqiqiqiqia/p/11907451.html