Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Voeg de rijen van twee tabellen samen om een nieuwe tabel te vormen door overeenkomende waarden van de opgegeven kolommen uit elke tabel te vergelijken.
Kusto Query Language (KQL) biedt veel soorten joins die elk op verschillende manieren van invloed zijn op het schema en de rijen in de resulterende tabel. Als u bijvoorbeeld een inner join gebruikt, heeft de tabel dezelfde kolommen als de linkertabel, plus de kolommen uit de rechtertabel. Als de ene tabel altijd kleiner is dan de andere tabel, gebruikt u deze als de linkerkant van de join operator.
De volgende afbeelding biedt een visuele weergave van de bewerking die door elke join wordt uitgevoerd. De kleur van de arcering vertegenwoordigt de geretourneerde kolommen en de gebieden die gearceerd zijn, geven de geretourneerde rijen weer.
Syntaxis
Linkertabel|join [ JoinFlavor ] [=kindHints ] (RightTable-voorwaarden)on
Meer informatie over syntaxisconventies.
Parameterwaarden
| Naam | Typologie | Verplicht | Description |
|---|---|---|---|
| Linkertabel | string |
✔️ | De linkertabel of tabellaire expressie, ook wel de buitenste tabel genoemd, waarvan de rijen moeten worden samengevoegd. Aangeduid als $left. |
| JoinFlavor | string |
Het type join dat moet worden uitgevoerd: innerunique, , leftouterinner, rightouter, fullouter, leftanti, . rightsemileftsemirightanti De standaardwaarde is innerunique. Zie Returns voor meer informatie over joins. |
|
| Hints | string |
Nul of meer door spaties gescheiden joinhints in de vorm van Naamwaarde= waarmee het gedrag van de bewerking en het uitvoeringsplan voor rijovereenkomsten wordt bepaald. Zie Hints voor meer informatie. |
|
| RightTable | string |
✔️ | De rechtertabel of tabellaire expressie, ook wel de binnenste tabel genoemd, waarvan de rijen moeten worden samengevoegd. Aangeduid als $right. |
| Voorwaarden | string |
✔️ | Bepaalt hoe rijen uit LeftTable overeenkomen met rijen uit RightTable. Als de kolommen die u wilt vergelijken, dezelfde naam hebben in beide tabellen, gebruikt u de syntaxis ONColumnName. Gebruik anders de syntaxis ON $left.LeftColumnRightColumn==$right.. Als u meerdere voorwaarden wilt opgeven, kunt u het trefwoord 'en' gebruiken of scheiden met komma's. Als u komma's gebruikt, worden de voorwaarden geëvalueerd met behulp van de logische operator 'and'. |
Aanbeveling
Als de ene tabel altijd kleiner is dan de andere, gebruikt u deze als de linkerkant van de join.
Hints
| Hint-toets | Waarden | Description |
|---|---|---|
hint.remote |
auto,left,local,right |
Zie Koppeling tussen clusters |
hint.strategy=broadcast |
Hiermee geeft u de manier op om de querybelasting op clusterknooppunten te delen. | Uitzendingsdeelname bekijken |
hint.shufflekey=<key> |
De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. |
Query voor willekeurige volgorde weergeven |
hint.strategy=shuffle |
De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. |
Query voor willekeurige volgorde weergeven |
| Naam | Waarden | Description |
|---|---|---|
hint.remote |
auto,left,local,right |
|
hint.strategy=broadcast |
Hiermee geeft u de manier op om de querybelasting op clusterknooppunten te delen. | Uitzendingsdeelname bekijken |
hint.shufflekey=<key> |
De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. |
Query voor willekeurige volgorde weergeven |
hint.strategy=shuffle |
De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. |
Query voor willekeurige volgorde weergeven |
Opmerking
De join-hints wijzigen niet het semantische van join maar kunnen van invloed zijn op de prestaties.
Retouren
Het retourschema en de rijen zijn afhankelijk van de joinsmaak. De joinsmaak wordt opgegeven met het soort trefwoord. In de volgende tabel ziet u de ondersteunde joins. Als u voorbeelden voor een specifieke joinsmaak wilt zien, selecteert u de koppeling in de kolom Join-smaak .
| Join smaak | Retouren | Illustratie |
|---|---|---|
| innerunique (standaard) | Inner join met ontdubbeling aan de linkerkant Schema: Alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: Alle ontdubbelde rijen uit de linkertabel die overeenkomen met rijen uit de rechtertabel |
|
| binnenste | Standaard inner join Schema: Alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: Alleen overeenkomende rijen uit beide tabellen |
|
| leftouter | Linksbuitenste verbinding Schema: Alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: Alle records uit de linkertabel en alleen overeenkomende rijen uit de rechtertabel |
|
| rightouter | Rechter buitenste join Schema: Alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: Alle records uit de rechtertabel en alleen overeenkomende rijen uit de linkertabel |
|
| fullouter | Volledig outer join Schema: Alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: Alle records uit beide tabellen met niet-overeenkomende cellen gevuld met null |
|
| leftsemi | Linker semi-join Schema: Alle kolommen uit de linkertabel Rijen: Alle records uit de linkertabel die overeenkomen met records uit de rechtertabel |
|
leftanti, antileftantisemi |
Linker anti-join en semi-variant Schema: Alle kolommen uit de linkertabel Rijen: Alle records uit de linkertabel die niet overeenkomen met records uit de rechtertabel |
|
| rightsemi | Rechter semi-join Schema: Alle kolommen uit de rechtertabel Rijen: Alle records uit de rechtertabel die overeenkomen met records uit de linkertabel |
|
rightanti, rightantisemi |
Rechter anti-join en semi variant Schema: Alle kolommen uit de rechtertabel Rijen: Alle records uit de rechtertabel die niet overeenkomen met records uit de linkertabel |
|
Cross-join
KQL biedt geen cross-join-smaak. U kunt echter een cross-join-effect bereiken met behulp van een tijdelijke aanduiding voor de sleutelbenadering.
In het volgende voorbeeld wordt een tijdelijke aanduidingssleutel toegevoegd aan beide tabellen en vervolgens gebruikt voor de inner join-bewerking, waardoor een cross-join-achtig gedrag wordt bereikt:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder