operator join
Voeg de rijen van twee tabellen samen tot een nieuwe tabel door de waarden van de opgegeven kolommen uit elke tabel te vergelijken.
Kusto-querytaal (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, gebruikt u deze als de linkerkant van de operator voor de join
beste prestaties.
In de volgende afbeelding ziet u een visuele weergave van de bewerking die door elke join wordt uitgevoerd.
Syntax
LeftTable|
join
[ kind
=
JoinFlavor ] [ Hints ] (
RightTable)
on
Conditions
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
LeftTable | string |
✔️ | De linkertabel of tabelvormige 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 , inner , leftouter , rightouter , fullouter , leftanti , rightanti , leftsemi . rightsemi De standaardwaarde is innerunique . Zie Returns (Retourneert) voor meer informatie over joins. |
|
Hints | string |
Nul of meer door spaties gescheiden joinhints in de vorm van Naamwaarde= die het gedrag van de rijovereenkomst en het uitvoeringsplan bepalen. Zie Hints voor meer informatie. |
|
Rechtstabel | 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 van LeftTable worden vergeleken met rijen uit RightTable. Als de kolommen die u wilt vergelijken dezelfde naam hebben in beide tabellen, gebruikt u de syntaxis ON ColumnName. Gebruik anders de syntaxis ON $left. LeftColumn== $right. RightColumn. Als u meerdere voorwaarden wilt opgeven, kunt u het trefwoord 'en' gebruiken of deze scheiden met komma's. Als u komma's gebruikt, worden de voorwaarden geëvalueerd met behulp van de logische operator 'en'. |
Tip
Als de ene tabel altijd kleiner is dan de andere, gebruikt u deze als de linkerkant van de join voor de beste prestaties.
Hints
Hint-toets | Waarden | Beschrijving |
---|---|---|
hint.remote |
auto , left , local , right |
Zie Join tussen clusters |
hint.strategy=broadcast |
Hiermee geeft u de manier op om de querybelasting op clusterknooppunten te delen. | Zie broadcast join |
hint.shufflekey=<key> |
De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. |
Bekijk willekeurige query |
hint.strategy=shuffle |
De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. |
Bekijk willekeurige query |
Naam | Waarden | Beschrijving |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Hiermee geeft u de manier op om de querybelasting op clusterknooppunten te delen. | Zie broadcast join |
hint.shufflekey=<key> |
De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. |
Bekijk willekeurige query |
hint.strategy=shuffle |
De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. |
Bekijk willekeurige query |
Notitie
De joinhints veranderen de semantische van join
niet, maar kunnen wel van invloed zijn op de prestaties.
Retouren
Het retourschema en de rijen zijn afhankelijk van de join-smaak. De join-smaak wordt opgegeven met het soort trefwoord. In de volgende tabel ziet u de ondersteunde join-varianten. Als u voorbeelden wilt zien voor een specifieke join-smaak, 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 de rijen uit de rechtertabel |
|
Innerlijke | Standaard inner join Schema: alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: alleen overeenkomende rijen uit beide tabellen |
|
links-outer | Left outer join Schema: alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: alle records uit de linkertabel en alleen overeenkomende rijen uit de rechtertabel |
|
rightouter | Right outer 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 | Volledige outer join Schema: alle kolommen uit beide tabellen, inclusief de overeenkomende sleutels Rijen: alle records uit beide tabellen met niet-overeenkomende cellen die zijn gevuld met null |
|
leftsemi | Semi-join links Schema: alle kolommen uit de linkertabel Rijen: alle records uit de linkertabel die overeenkomen met records uit de rechtertabel |
|
leftanti , anti , leftantisemi |
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 sleutels.
In het volgende voorbeeld wordt een tijdelijke aanduidingssleutel toegevoegd aan beide tabellen en vervolgens gebruikt voor de inner join-bewerking, waardoor in feite een cross-join-achtig gedrag wordt bereikt:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Gerelateerde inhoud
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub Issues geleidelijk uitfaseren als het feedbackmechanisme voor inhoud. Het wordt vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor