Csoportbeillesztési záradék (Visual Basic)
Két gyűjteményt egyesít egyetlen hierarchikus gyűjteménybe. Az illesztési művelet egyező kulcsokon alapul.
Syntax
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 element collection kö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