operator join

Gabungkan baris dua tabel untuk membentuk tabel baru dengan mencocokkan nilai kolom yang ditentukan dari setiap tabel.

Bahasa Kueri Kusto (KQL) menawarkan berbagai jenis gabungan yang masing-masing memengaruhi skema dan baris dalam tabel yang dihasilkan dengan cara yang berbeda. Misalnya, jika Anda menggunakan inner gabungan, tabel memiliki kolom yang sama dengan tabel kiri, ditambah kolom dari tabel kanan. Untuk performa terbaik, jika satu tabel selalu lebih kecil dari tabel lainnya, gunakan sebagai sisi join kiri operator.

Gambar berikut menyediakan representasi visual operasi yang dilakukan oleh setiap gabungan.

Diagram memperlihatkan jenis gabungan kueri.

Sintaks

LeftTable|join [ kind=JoinFlavor ] [ Petunjuk ] (Kondisi RightTable)on

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
LeftTable string ✔️ Tabel kiri atau ekspresi tabular, terkadang disebut tabel luar, yang barisnya akan digabungkan. Dilambangkan sebagai $left.
JoinFlavor string Jenis gabungan untuk melakukan: innerunique, , inner, leftouter, rightouter, fullouterleftanti, rightanti, , leftsemirightsemi. Default adalah innerunique. Untuk informasi selengkapnya tentang ragam gabungan, lihat Mengembalikan.
Petunjuk string Nol atau lebih petunjuk gabungan yang dipisahkan spasi dalam bentukNilaiNama= yang mengontrol perilaku operasi pencocokan baris dan rencana eksekusi. Untuk informasi selengkapnya, lihat Petunjuk.
RightTable string ✔️ Tabel kanan atau ekspresi tabular, terkadang disebut tabel dalam, yang barisnya akan digabungkan. Dilambangkan sebagai $right.
Kondisi string ✔️ Menentukan bagaimana baris dari LeftTable dicocokkan dengan baris dari RightTable. Jika kolom yang ingin Anda cocokkan memiliki nama yang sama di kedua tabel, gunakan sintaks ONColumnName. Jika tidak, gunakan sintaks ON $left.LeftColumn==$right.RightColumn. Untuk menentukan beberapa kondisi, Anda dapat menggunakan kata kunci "dan" atau memisahkannya dengan koma. Jika Anda menggunakan koma, kondisi dievaluasi menggunakan operator logis "dan".

Tip

Untuk performa terbaik, jika satu tabel selalu lebih kecil dari tabel lainnya, gunakan sebagai sisi kiri gabungan.

Petunjuk

Kunci petunjuk Nilai Deskripsi
hint.remote auto, left, local, right Lihat Gabungan Lintas Kluster
hint.strategy=broadcast Menentukan cara berbagi beban kueri pada node kluster. Lihat gabungan siaran
hint.shufflekey=<key> Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. Lihat kueri shuffle
hint.strategy=shuffle Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. Lihat kueri acak
Nama Nilai Deskripsi
hint.remote auto, left, local, right
hint.strategy=broadcast Menentukan cara berbagi beban kueri pada node kluster. Lihat gabungan siaran
hint.shufflekey=<key> Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. Lihat kueri shuffle
hint.strategy=shuffle Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. Lihat kueri shuffle

Catatan

Petunjuk gabungan tidak mengubah semantik join tetapi dapat memengaruhi performa.

Mengembalikan

Skema dan baris yang dikembalikan bergantung pada rasa gabungan. Rasa gabungan ditentukan dengan kata kunci jenis . Tabel berikut ini memperlihatkan ragam gabungan yang didukung. Untuk melihat contoh ragam gabungan tertentu, pilih tautan di kolom Gabungkan ragam .

Rasa gabungan Mengembalikan Ilustrasi
innerunique (default) Gabungan dalam dengan deduplikasi sisi kiri
Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok
Baris: Semua baris yang dideduplikasi dari tabel kiri yang cocok dengan baris dari tabel kanan
Batin Gabungan dalam standar
Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok
Baris: Hanya baris yang cocok dari kedua tabel
leftouter Gabungan luar kiri
Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok
Baris: Semua rekaman dari tabel kiri dan hanya baris yang cocok dari tabel kanan
rightouter Gabungan luar kanan
Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok
Baris: Semua rekaman dari tabel kanan dan hanya baris yang cocok dari tabel kiri
fullouter Gabungan luar penuh
Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok
Baris: Semua rekaman dari kedua tabel dengan sel yang tidak cocok diisi dengan null
leftsemi Semi-gabungan kiri
Skema: Semua kolom dari tabel kiri
Baris: Semua rekaman dari tabel kiri yang cocok dengan rekaman dari tabel kanan
leftanti, anti, leftantisemi Anti join kiri dan varian semi
Skema: Semua kolom dari tabel kiri
Baris: Semua rekaman dari tabel kiri yang tidak cocok dengan rekaman dari tabel kanan
rightsemi Semi-gabungan kanan
Skema: Semua kolom dari tabel kanan
Baris: Semua rekaman dari tabel kanan yang cocok dengan rekaman dari tabel kiri
rightanti, rightantisemi Varian anti join dan semi kanan
Skema: Semua kolom dari tabel kanan
Baris: Semua rekaman dari tabel kanan yang tidak cocok dengan rekaman dari tabel kiri

Gabungan lintas

KQL tidak memberikan rasa lintas-gabungan. Namun, Anda dapat mencapai efek gabungan silang dengan menggunakan pendekatan kunci tempat penampung.

Dalam contoh berikut, kunci tempat penampung ditambahkan ke kedua tabel lalu digunakan untuk operasi gabungan dalam, secara efektif mencapai perilaku seperti lintas gabungan:

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