왼쪽 외부 조인을 수행하는 방법 – C#의 LINQ

Oenjjog Oebu Join Eul Suhaenghaneun Bangbeob C Ui Linq



SQL에서 왼쪽 테이블과 오른쪽 테이블의 일치하는 레코드를 표시하기 위해 왼쪽 외부 조인이 사용되는 조인 작업 유형입니다. LINQ에서 왼쪽 외부 조인은 GroupJoin() 및 SelectMany() 메서드를 사용하여 수행할 수 있습니다. 이 기사에서는 C#을 사용하여 LINQ에서 왼쪽 외부 조인을 수행하는 방법에 대해 광범위하게 설명합니다.

C#을 사용하여 LINQ에서 왼쪽 외부 조인을 수행하는 방법

LINQ에서 왼쪽 우선 외부 조인을 수행하려면 GroupJoin() 메서드를 사용하여 공통 키를 기반으로 두 시퀀스를 조인한 다음 SelectMany() 메서드를 사용하여 결과를 평탄화할 수 있습니다. 예는 다음과 같습니다.







시스템 사용;
System.Linq 사용;

수업 프로그램
{
정적 무효 메인 ( )
{
var 왼쪽 = 새로운 [ ] { 1 , 2 , } ;
var 오른쪽 = 새로운 [ ] { 2 , , 4 } ;
var result = left.GroupJoin (
오른쪽,
내가 = > 엘,
r = > 아르 자형,
( 내가, r ) = > 새로운 { 왼쪽 = l, 오른쪽 = r.DefaultIfEmpty ( ) } )
.SelectMany (
리터 = > lr.오른쪽.선택 (
r = > 새로운 { 왼쪽 = lr.왼쪽, 오른쪽 = r } ) ) ;
각각 ( 변수 항목 ~에 결과 )
{
콘솔.쓰기줄 ( '{0} {1}' , 항목.왼쪽, 항목.오른쪽 ) ;
}
}
}

이 코드는 왼쪽 및 오른쪽 두 배열에서 왼쪽 외부 조인을 수행하고 그 결과를 콘솔에 출력합니다. GroupJoin() 메서드는 조인을 수행하고 SelectMany() 방법은 결과를 평탄화하는 데 사용됩니다. 마지막으로 결과는 foreach 루프와 WriteLine() 함수를 사용하여 콘솔에 인쇄됩니다.

다음은 각 직원 이름과 관련 부서를 표시하여 제외 조인을 수행하는 방법을 보여주는 또 다른 예입니다. 각 직원은 각 부서에 번호가 할당되어 관련 부서를 해당 직원과 일치시키는 데 사용됩니다. 전체 코드는 다음과 같습니다.

시스템 사용;
System.Collections.Generic 사용;
System.Linq 사용;

네임스페이스 YourNamespace
{
수업 프로그램
{
정적 무효 메인 ( [ ] 인수 )
{
목록 < 직원 이름 > 직원 = 새 목록 < 직원 이름 >
{
신입 사원 이름 { 아이디 = 1 , 이름 = '그 자신' , 부서 ID = 1 } ,
신입 사원 이름 { 아이디 = 2 , 이름 = '남자' , 부서 ID = 2 } ,
신입 사원 이름 { 아이디 = , 이름 = '케빈' , 부서 ID = 2 } ,
신입 사원 이름 { 아이디 = 4 , 이름 = '단발' , 부서 ID = }
} ;

목록 < 부서 > 부서 = 새 목록 < 부서 >
{
새로운 부서 { 아이디 = 1 , 이름 = '콘텐츠 작성' } ,
새로운 부서 { 아이디 = 2 , 이름 = '마케팅' } ,
새로운 부서 { 아이디 = , 이름 = '공학' }
} ;

var 쿼리 = 직원 이름에서 ~에 직원
가입하다 부서 ~에 부서
Employeename.DepartmentId에서 부서 그룹에 대한 부서.Id와 같습니다.
부서에서 ~에 부서그룹.DefaultIfEmpty ( )
선택하다 새로운 { 직원 이름 = 직원 이름.이름, 부서 이름 = 부서?.이름 ?? '없음' } ;

각각 ( 결과였다 ~에 질문 )
{
콘솔.쓰기줄 ( $ '직원 이름: {result.EmployeenameName}, 부서: {result.DepartmentName}' ) ;
}
}
}

클래스 직원 이름
{
공공 정수 ID { 얻다; 세트 ; }
공개 문자열 이름 { 얻다; 세트 ; }
public int 부서 ID { 얻다; 세트 ; }
}

클래스 부서
{
공공 정수 ID { 얻다; 세트 ; }
공개 문자열 이름 { 얻다; 세트 ; }
}
}

먼저 직원 이름과 부서 이름이 포함된 샘플 데이터가 제공되고 그 후에 각각의 번호가 부여됩니다. 다음으로 join 명령을 사용하여 조인 작업을 수행하고 그 결과를 query라는 변수에 저장한 후 for 루프를 사용하여 각 직원의 이름과 부서를 출력하고 코드의 출력은 다음과 같습니다. :

결론

왼쪽 외부 조인은 SQL의 일반적인 작업이며 C#의 LINQ를 사용하여 쉽게 수행할 수도 있습니다. GroupJoin() 및 SelectMany() 메서드를 사용하면 공통 키를 기반으로 두 시퀀스에서 왼쪽 외부 조인을 수행할 수 있습니다. LINQ에서 왼쪽 외부 조인을 수행하는 구문은 초보자가 이해하기 어려울 수 있지만 복잡한 쿼리를 쉽게 수행할 수 있는 강력하고 유연한 언어입니다.