Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Két gyűjteményt egyesít egyetlen hierarchikus gyűjteménybe. Az illesztési művelet egyező kulcsokon alapul.
Szemantika
Group Join element [As type] In collection _
On key1 Equals key2 [ And key3 Equals key4 [... ] ] _
Into expressionList
Részek
| Időszak | Definíció |
|---|---|
element |
Szükséges. Az összekapcsolt gyűjtemény vezérlőváltozója. |
type |
Opcionális. A típus element. Ha nincs type megadva, a függvény a következőből elementcollectionkövetkeztet: . |
collection |
Szükséges. Az operátor bal oldalán Group Join található gyűjteményrel kombinálandó gyűjtemény. Egy Group Join záradék beágyazható egy Join záradékba vagy egy másik Group Join záradékba. |
key1
Equals
key2
|
Szükséges. Azonosítja az összekapcsolt gyűjtemények kulcsait. Az operátorral Equals össze kell hasonlítania a csatlakoztatott gyűjtemények kulcsait. Összekapcsolási feltételeket kombinálhat az And operátorral több kulcs azonosításához. A key1 paraméternek az operátor bal oldalán található gyűjteményből kell származnia Join . A key2 paraméternek az operátor jobb oldalán található gyűjteményből kell származnia Join .Az illesztési feltételben használt kulcsok olyan kifejezések lehetnek, amelyek egynél több elemet tartalmaznak a gyűjteményből. Az egyes kulcskifejezések azonban csak a saját gyűjteményéből származó elemeket tartalmazhatnak. |
expressionList |
Szükséges. Egy vagy több kifejezés, amely azonosítja a gyűjtemény elemeinek csoportjainak összesítését. A csoportosított eredmények tagnevének azonosításához használja a (<alias> = Group) kulcsszótGroup. A csoportra alkalmazandó összesítő függvényeket is felvehet. |
Megjegyzések
A Group Join záradék két gyűjteményt egyesít az összekapcsolt gyűjtemények kulcsértékeinek megfelelő alapján. Az eredményként kapott gyűjtemény olyan tagot tartalmazhat, amely a második gyűjtemény elemeinek gyűjteményére hivatkozik, amelyek megfelelnek az első gyűjtemény kulcsértékének. A második gyűjtemény csoportosított elemeire alkalmazandó összesítő függvényeket is megadhat. Az összesítő függvényekkel kapcsolatos információkért lásd az Összesítési záradékot.
Fontolja meg például a vezetők és az alkalmazottak gyűjteményét. Mindkét gyűjtemény elemei rendelkeznek egy ManagerID tulajdonságkal, amely azonosítja azokat az alkalmazottakat, akik egy adott vezetőnek jelentenek. Az illesztési művelet eredményei minden vezető és alkalmazott esetében egyező ManagerID értékkel rendelkező eredményt tartalmaznak. A művelet eredményei Group Join a vezetők teljes listáját tartalmazzák. Minden vezető eredménye egy olyan tagot tartalmazna, aki az adott vezetőnek megfelelő alkalmazottak listájára hivatkozik.
A műveletből Group Join eredő gyűjtemény a záradékban From azonosított gyűjtemény értékeinek és a záradék záradékában Into azonosított kifejezéseknek bármilyen kombinációját tartalmazhatja Group Join . A záradék érvényes kifejezéseiről további információt az Intoösszesítő záradékban talál.
A Group Join művelet az operátor bal oldalán azonosított gyűjtemény összes eredményét visszaadja Group Join . Ez akkor is igaz, ha nincsenek egyezések a csatlakoztatott gyűjteményben. Ez olyan, mint egy LEFT OUTER JOIN SQL-ben.
A záradék használatával egyesítheti a Join gyűjteményeket egyetlen gyűjteményben. Ez egyenértékű az INNER JOIN SQL-ben.
példa
Az alábbi példakód két gyűjteményt illeszt össze a Group Join záradék használatával.
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