join operátor

Két tábla sorainak egyesítése új tábla létrehozásához az egyes táblák megadott oszlopainak megfelelő értékekkel.

Kusto lekérdezésnyelv (KQL) számos olyan illesztéstípust kínál, amelyek mindegyike különböző módon befolyásolja az eredményül kapott tábla sémáját és sorait. Ha például illesztéseket inner használ, a táblázat ugyanazokat az oszlopokat tartalmazza, mint a bal oldali táblát, valamint a jobb oldali táblázat oszlopait. A legjobb teljesítmény érdekében, ha az egyik tábla mindig kisebb, mint a másik, használja az operátor bal oldalán join .

Az alábbi kép vizuálisan ábrázolja az egyes illesztés által végrehajtott műveletet.

A lekérdezések illesztéstípusát bemutató diagram.

Syntax

Bal oldali tábla|join [ kind=JoinFlavor ] [ Tippek ] (RightTable)onfeltételek

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Bal oldali tábla string ✔️ A bal oldali táblázat vagy táblázatos kifejezés, más néven külső táblázat, amelynek sorait egyesíteni kell. Jelölése: $left.
JoinFlavor string A végrehajtandó illesztés típusa: innerunique, inner, leftouter, rightouter, fullouter, leftanti, rightanti, leftsemi. rightsemi A mező alapértelmezett értéke: innerunique. Az illesztés ízeiről további információt a Visszatérések című témakörben talál.
Módosítók string Nulla vagy több szóközzel elválasztott illesztési tipp névérték= formájában, amelyek a soregyeztetési művelet és a végrehajtási terv viselkedését szabályozzák. További információ: Tippek.
RightTable string ✔️ A jobb oldali táblázat vagy táblázatos kifejezés, más néven belső tábla, amelynek sorait egyesíteni kell. Jelölése: $right.
Feltételek string ✔️ Meghatározza, hogy a LeftTable sorai hogyan egyeznek a RightTable-ból származó sorokkal. Ha az egyeztetni kívánt oszlopok neve mindkét táblában megegyezik, használja a ColumnName szintaxistON. Ellenkező esetben használja a LeftColumnRightColumn==$right. szintaxistON $left.. Több feltétel megadásához használhatja az "és" kulcsszót, vagy vesszővel elválaszthatja őket. Ha vesszőt használ, a feltételek kiértékelése az "és" logikai operátor használatával történik.

Tipp

A legjobb teljesítmény érdekében, ha az egyik tábla mindig kisebb, mint a másik, használja az illesztés bal oldalán.

Módosítók

Tippkulcs Értékek Leírás
hint.remote auto, left, local, right Lásd: Fürtök közötti csatlakozás
hint.strategy=broadcast Megadja a fürtcsomópontok lekérdezési terhelésének megosztásának módját. Lásd : közvetítési csatlakozás
hint.shufflekey=<key> A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. Lásd: elosztási lekérdezés
hint.strategy=shuffle A shuffle stratégiai lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését, ahol minden csomópont feldolgozza az adatok egy partícióját. Lásd: elosztási lekérdezés
Name Értékek Leírás
hint.remote auto, left, local, right
hint.strategy=broadcast Megadja a fürtcsomópontok lekérdezési terhelésének megosztásának módját. Lásd : közvetítési csatlakozás
hint.shufflekey=<key> A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. Lásd: elosztási lekérdezés
hint.strategy=shuffle A shuffle stratégiai lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését, ahol minden csomópont feldolgozza az adatok egy partícióját. Lásd: elosztási lekérdezés

Megjegyzés

Az illesztési tippek nem változtatják meg a szemantikai értékét join , de hatással lehetnek a teljesítményre.

Válaszok

A visszatérési séma és a sorok az illesztés ízétől függnek. Az illesztés íze a kind kulcsszóval van megadva. Az alábbi táblázat a támogatott illesztés-ízeket mutatja be. Ha egy adott illesztés ízére szeretne példákat látni, válassza a hivatkozást az Illesztés íze oszlopban.

Íz csatlakoztatása Válaszok Illusztráció
innerunique (alapértelmezett) Belső illesztés bal oldali deduplikációval
Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is
Sorok: A bal oldali táblázat összes deduplikált sora, amely megfelel a jobb oldali táblázat sorainak
Belső Standard belső illesztés
Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is
Sorok: Csak egyező sorok mindkét táblából
leftouter Bal oldali külső illesztés
Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is
Sorok: A bal oldali tábla összes rekordja, és csak a jobb oldali táblázat egyező sorai
rightouter Jobb oldali külső illesztés
Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is
Sorok: A jobb oldali táblázat összes rekordja, és csak a bal oldali tábla egyező sorai
fullouter Teljes külső illesztés
Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is
Sorok: Mindkét tábla összes rekordja null értékkel kitöltött nem egyező cellákkal
leftsemi Bal oldali félillesztés
Séma: A bal oldali táblázat összes oszlopa
Sorok: A bal oldali tábla összes olyan rekordja, amely megfelel a jobb oldali tábla rekordjainak
leftanti, anti, leftantisemi Bal oldali illesztés és félvariáns
Séma: A bal oldali táblázat összes oszlopa
Sorok: A bal oldali tábla összes olyan rekordja, amely nem egyezik a jobb oldali táblázat rekordjaival
rightsemi Jobb oldali félillesztés
Séma: A jobb oldali táblázat összes oszlopa
Sorok: A jobb oldali tábla összes olyan rekordja, amely megfelel a bal oldali tábla rekordjainak
rightanti, rightantisemi Jobb oldali illesztésgátló és félvariáns
Séma: A jobb oldali táblázat összes oszlopa
Sorok: A jobb oldali tábla összes olyan rekordja, amely nem egyezik a bal oldali tábla rekordjaival

Keresztillesztés

A KQL nem biztosít keresztillesztésű ízt. Azonban helyőrzőkulcs-megközelítéssel keresztillesztés effektust érhet el.

A következő példában egy helyőrző kulcsot adunk hozzá mindkét táblához, majd a belső illesztési művelethez használjuk, hatékonyan megvalósítva a keresztillesztéshez hasonló viselkedést:

X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder