두 컬렉션을 단일 계층적 컬렉션으로 결합합니다. 조인 작업은 일치하는 키를 기반으로 합니다.
문법
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
부분
기간 | 정의 |
---|---|
element |
필수 사항입니다. 조인할 컬렉션의 컨트롤 변수입니다. |
type |
선택 사항입니다.
element 의 형식입니다. 지정하지 type 않으면 형식 element 이 .에서 collection 유추됩니다. |
collection |
필수 사항입니다. 연산자의 왼쪽 Group Join 에 있는 컬렉션과 결합할 컬렉션입니다.
Group Join 절은 절 또는 다른 Group Join 절에 중첩 Join 될 수 있습니다. |
key1
Equals
key2
|
필수 사항입니다. 조인되는 컬렉션의 키를 식별합니다. 연산자를 Equals 사용하여 조인 중인 컬렉션의 키를 비교해야 합니다. 연산자를 사용하여 여러 키를 식별하여 조인 And 조건을 결합할 수 있습니다. 매개 변수는 key1 연산자의 왼쪽에 있는 컬렉션에 Join 있어야 합니다. 매개 변수는 key2 연산자의 오른쪽에 있는 컬렉션에 Join 있어야 합니다.조인 조건에 사용되는 키는 컬렉션에서 둘 이상의 항목을 포함하는 식일 수 있습니다. 그러나 각 키 식은 해당 컬렉션의 항목만 포함할 수 있습니다. |
expressionList |
필수 사항입니다. 컬렉션의 요소 그룹을 집계하는 방법을 식별하는 하나 이상의 식입니다. 그룹화된 결과의 멤버 이름을 식별하려면 키워드(<alias> = Group )를 사용합니다Group . 그룹에 적용할 집계 함수를 포함할 수도 있습니다. |
비고
절은 Group Join
조인되는 컬렉션에서 일치하는 키 값을 기반으로 두 컬렉션을 결합합니다. 결과 컬렉션에는 첫 번째 컬렉션의 키 값과 일치하는 두 번째 컬렉션의 요소 컬렉션을 참조하는 멤버가 포함될 수 있습니다. 두 번째 컬렉션의 그룹화된 요소에 적용할 집계 함수를 지정할 수도 있습니다. 집계 함수에 대한 자세한 내용은 Aggregate 절을 참조하세요.
예를 들어 관리자 컬렉션과 직원 컬렉션을 고려합니다. 두 컬렉션의 요소에는 특정 관리자에게 보고하는 직원을 식별하는 ManagerID 속성이 있습니다. 조인 작업의 결과에는 일치하는 ManagerID 값을 가진 각 관리자 및 직원에 대한 결과가 포함됩니다. 작업의 결과에 Group Join
는 전체 관리자 목록이 포함됩니다. 각 관리자 결과에는 특정 관리자와 일치하는 직원 목록을 참조하는 멤버가 있습니다.
작업에서 Group Join
생성된 컬렉션에는 절에 식별된 From
컬렉션의 값과 절의 절에서 식별된 식의 조합이 Into
Group Join
포함될 수 있습니다. 절의 유효한 식에 대한 자세한 내용은 Aggregate 절을 Into
참조하세요.
연산자는 Group Join
연산자의 왼쪽에 식별된 컬렉션의 모든 결과를 반환합니다 Group Join
. 조인 중인 컬렉션에 일치하는 항목이 없더라도 마찬가지입니다. 이는 SQL에서와 LEFT OUTER JOIN
같습니다.
절을 Join
사용하여 컬렉션을 단일 컬렉션으로 결합할 수 있습니다. 이는 SQL의 경우와 INNER JOIN
동일합니다.
예시
다음 코드 예제에서는 절을 사용하여 두 컬렉션을 조인 Group Join
합니다.
Dim customerList = From cust In customers
Group Join ord In orders On
cust.CustomerID Equals ord.CustomerID
Into CustomerOrders = Group,
OrderTotal = Sum(ord.Total)
Select cust.CompanyName, cust.CustomerID,
CustomerOrders, OrderTotal
For Each customer In customerList
Console.WriteLine(customer.CompanyName &
" (" & customer.OrderTotal & ")")
For Each order In customer.CustomerOrders
Console.WriteLine(vbTab & order.OrderID & ": " & order.Total)
Next
Next
참고하십시오
- Visual Basic LINQ 소개
- 쿼리
- Select 절
- From 절
- 조인 구문
- Where 절
- Group By 절
.NET