Group Join 절(Visual Basic)
두 컬렉션을 단일 계층 구조 컬렉션으로 결합합니다. 조인 작업은 일치하는 키를 기반으로 합니다.
구문
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 절은 Join 절이나 다른 Group Join 절에 중첩될 수 있습니다. |
key1 Equals key2 |
필수입니다. 조인되는 컬렉션의 키를 식별합니다. 조인되는 컬렉션의 키를 비교하려면 Equals 연산자를 사용해야 합니다. 여러 키를 식별하기 위해 And 연산자를 사용하여 조인 조건을 조인할 수 있습니다. key1 매개 변수는 Join 연산자 왼쪽에 있는 컬렉션에서 가져와야 합니다. key2 매개 변수는 Join 연산자 오른쪽에 있는 컬렉션에서 가져와야 합니다.조인 조건에 사용되는 키는 컬렉션에서 둘 이상의 항목을 포함하는 식일 수 있습니다. 그러나 각 키 식에는 해당 컬렉션의 항목만 포함될 수 있습니다. |
expressionList |
필수입니다. 컬렉션의 요소 그룹이 집계되는 방식을 식별하는 하나 이상의 식입니다. 그룹화된 결과의 멤버 이름을 식별하려면 Group 키워드(<alias> = Group )를 사용합니다. 그룹에 적용할 집계 함수를 포함할 수도 있습니다. |
설명
Group Join
절은 조인되는 컬렉션의 일치하는 키 값을 기반으로 두 컬렉션을 조인합니다. 결과 컬렉션에는 첫 번째 컬렉션의 키 값과 일치하는 두 번째 컬렉션의 요소 컬렉션을 참조하는 멤버가 포함될 수 있습니다. 두 번째 컬렉션의 그룹화된 요소에 적용할 집계 함수를 지정할 수도 있습니다. 집계 함수에 대한 자세한 내용은 Aggregate 절을 참조하세요.
예를 들어, 관리자 컬렉션과 직원 컬렉션을 생각해 보세요. 두 컬렉션의 요소에는 특정 관리자에게 보고하는 직원을 식별하는 ManagerID 속성이 있습니다. 조인 작업의 결과에는 ManagerID 값이 일치하는 각 관리자와 직원에 대한 결과가 포함됩니다. Group Join
작업의 결과에는 전체 관리자 목록이 포함됩니다. 각 관리자 결과에는 특정 관리자와 일치하는 직원 목록을 참조하는 멤버가 있습니다.
Group Join
작업의 결과 컬렉션에는 From
절에서 식별된 컬렉션 값과 Group Join
절의 Into
절에서 식별된 식의 모든 조합이 포함될 수 있습니다. Into
절의 유효한 식에 대한 자세한 내용은 Aggregate 절을 참조하세요.
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
참고 항목
.NET