# Join

join öneki, yüklenmiş tabloyu mevcut adlandırılmış bir tabloyla veya daha önce oluşturulmuş son veri tablosuyla birleştirir.

Veri birleştirmenin etkisi, hedef tabloyu ek bir alanlar veya öznitelikler kümesi ile; hedef tabloda zaten mevcut olanlar ile genişletmektir. Kaynak veri kümesi ile hedef tablo arasındaki varsa ortak alan adları, gelen yeni kayıtların nasıl ilişkilendirileceğini belirlemek için kullanılır. Buna yaygın olarak "doğal birleştirme" denir. Bir Qlik birleştirme işlemi; birleştirme ilişkisinin benzersizliğine ve kullanılan birleştirme türüne bağlı olarak ortaya çıkan hedef tabloda başlangıçtan daha az veya daha fazla kayıt olmasıyla sonuçlanabilir.

Dört bileştirme türü vardır:

Sol birleştirme

Sol birleştirme en yaygın birleştirme türüdür. Örneğin, bir işlem veri kümeniz varsa ve bunu bir referans veri kümesiyle birleştirme istiyorsanız, normal olarak bir `Left Join` kullanırsınız. Önce işlem tablosunu yüklersiniz, sonra bir `Left Join` ön ekiyle zaten yüklü olan tabloyla birleştirerek referans veri kümesini yüklersiniz. Bir `Left Join` tüm işlemleri olduğu gibi tutar ve eşleşme bulunan durumlarda tamamlayıcı referans verisi alanlarını ekler.

İç birleştirme

İki veri kümenizi olduğunda ve sizi yalnızca eşleşen ilişkilendirmeler olan sonuçlar ilgilendirdiğinde `Inner Join` kullanmayı düşünün. Bu, gerek yüklenen kaynak verilerden gerekse hedef tablodan eşleşmesi olmayan tüm kayıtları çıkarır. Bu, hedef tablonuzda birleştirme işlemi yapılmadan öncekinden daha az kayıt bırakabilir.

Dış birleştirme

Gerek hedef kayıtları gerekse gelen kayıtların tümünü tutmanız gerektiğinde bir `Outer Join` kullanın. Bir eşleşme bulunmadığında, kayıt seti hâlâ tutulur ancak birleştirmenin karşı tarafından alanlar doldurulmaz (null kalır).

"Type" anahtar sözcüğü çıkarılırsa varsayılan birleştirme türü dış birleştirmedir.

Sağ birleştirme

Bu birleştirme türü yüklenmek üzere olan tüm kayıtları tutarken birleştirme ile hedeflenen kayıtların sayısını gelen kayıtlarda bir ilişkilendirme eşleşmesi olanlarla sınırlar. Bu, sınırlı kullanımı olan bir birleştirme türüdür ve bazen zaten yüklenmiş olan kayıtlar tablosunu istenen alt kümeye indirgemek için kullanılır.

Değişik tür birleştirme işlemlerinden örnek sonuç setleri

Değişik tür birleştirme işlemlerinden örnek sonuç setleri

Değişik tür birleştirme işlemlerinden örnek sonuç setleri ![Değişik tür birleştirme işlemlerinin ardından veri tablolarının önceki ve sonraki halini gösteren örnek sonuç setleri](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-join-examples-operations.png)

Bilgi notuBir birleştirme işleminin kaynağı ile hedefi arasında ortak bir alan adı yoksa, birleştirme işlemi tüm satırların kartezyen çarpımıyla sonuçlanır. Bu "çapraz birleştirme" olarak adlandırılır.

"Çapraz birleştirme" işleminin sonuç setine örnek

"Çapraz birleştirme" işleminin sonuç setine örnek

"Çapraz birleştirme" işleminin sonuç setine örnek ![Bir çapraz birleştirme işleminden sonra (herhangi bir tür birleştirme işlemini içerebilir) girdi ve çıktı verilerinin önceki ve sonraki hallerinin karşılaştırması.](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-examples-join-no-common-fields.png)

Söz Dizimi:

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| tablename | Yüklenen tablo ile karşılaştırılacak adlandırılmış tablo. |
| loadstatementveya selectstatement | Yüklenen tablo için LOAD veya SELECT deyimi. |

Bu konular bu fonksiyon ile çalışmanıza yardımcı olabilir:

İlgili konular

| Konu | Açıklama |
| --- | --- |
| [Join ve Keep ile tabloları birleştirme](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm) | Bu konu veri kümelerini "birleştirme" ve "tutma" kavramlarını ayrıntılı olarak açıklamaktadır. |
| [Keep](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm) | `Keep` yükleme ön eki `Join` ön ekine benzer, ancak kaynak ve hedef veri kümelerini birleştirmez. Bunun yerine her veri kümesini benimsenen işlem türüne göre (iç, dış, sol veya sağ) sınırlar. |

## Örnek 1 - Sol birleştirme: Hedef tabloyu bir referans veri kümesiyle zenginleştirme

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Changes` adlı bir tabloya yüklenen, değişim kayıtlarını temsil eden bir veri kümesi. Status ID anahtar alanını içerir.

* Yüklenip asıl değişim kayıtlarıyla bir sol `Join` yükleme ön eki ile birleştirilerek bir araya getirilen, değişim durumlarını temsil eden ikinci bir veri kümesi.

Bu sol birleştirme; değişim kayıtlarının olduğu gibi kalmasını sağlarken, gelen durum kayıtlarında ortak bir Status ID temel alınarak bir eşleşme bulunan yerlerde durum öznitelikleri ekler.

Komut dosyası

```
Changes:
Load * inline [ 
Change ID	Status ID	Scheduled Start Date	Scheduled End Date	Business Impact 
10030	4	19/01/2022	23/02/2022	None
10015	3	04/01/2022	15/02/2022	Low
10103	1	02/04/2022	29/05/2022	Medium
10185	2	23/06/2022	08/09/2022	None
10323	1	08/11/2022	26/11/2022	High
10326	2	11/11/2022	05/12/2022	None
10138	2	07/05/2022	03/08/2022	None
10031	3	20/01/2022	25/03/2022	Low
10040	1	29/01/2022	22/04/2022	None
10134	1	03/05/2022	08/07/2022	Low
10334	2	19/11/2022	06/02/2023	Low
10220	2	28/07/2022	06/09/2022	None
10264	1	10/09/2022	17/10/2022	Medium
10116	1	15/04/2022	24/04/2022	None
10187	2	25/06/2022	24/08/2022	Low
] (delimiter is '\t');

Status:
Left Join (Changes)
Load * inline [
Status ID	Status	Sub Status
1	Open	Not Started
2	Open	Started
3	Closed	Completed
4	Closed	Cancelled
5	Closed	Obsolete			
] (delimiter is '\t');
```

Sonuçlar

Veri modeli görüntüleyicisi'ni açın ve veri modelinin şekline dikkat edin. Yalnızca bir adet normalleştirilmiş tablo mevcuttur. Tablo, asıl kayıtların tümünü her değişim kaydıyla birleştirilmiş eşleşen durum öznitelikleriyle bir araya getirir.

Ortaya çıkan dahili veri modeli

| Changes |
| --- |
| Change ID |
| Status ID |
| Zamanlanan Başlangıç Tarihi |
| Zamanlanan Bitiş Tarihi |
| İşe Etkisi |
| Durum |
| Alt Durum |

Veri modeli görüntüleyicisi'ndeki önizleme penceresini genişletirseniz bu tam sonuç setinin bir kısmını bir tablo halinde düzenlenmiş olarak görebilirsiniz:

Changes tablosunun Veri modeli görüntüleyicisi'ndeki önizlemesi

| Change ID | Status ID | Zamanlanan Başlangıç Tarihi | Zamanlanan Bitiş Tarihi | İşe Etkisi | Durum | Alt Durum |
| --- | --- | --- | --- | --- | --- | --- |
| 10030 | 4 | 19/01/2022 | 23/02/2022 | Yok | Kapatıldı | İptal edildi |
| 10031 | 3 | 20/01/2022 | 25/03/2022 | Düşük | Kapatıldı | Tamamlandı |
| 10015 | 3 | 04/01/2022 | 15/02/2022 | Düşük | Kapatıldı | Tamamlandı |
| 10103 | 1 | 02/04/2022 | 29/05/2022 | Orta | Aç | Henüz Başlamadı |
| 10116 | 1 | 15/04/2022 | 24/04/2022 | Yok | Açık | Henüz Başlamadı |
| 10134 | 1 | 03/05/2022 | 08/07/2022 | Düşük | Aç | Henüz Başlamadı |
| 10264 | 1 | 10/09/2022 | 17/10/2022 | Orta | Aç | Henüz Başlamadı |
| 10040 | 1 | 29/01/2022 | 22/04/2022 | Yok | Açık | Henüz Başlamadı |
| 10323 | 1 | 08/11/2022 | 26/11/2022 | Yüksek | Aç | Henüz Başlamadı |
| 10187 | 2 | 25/06/2022 | 24/08/2022 | Düşük | Aç | Başlatıldı |
| 10185 | 2 | 23/06/2022 | 08/09/2022 | Yok | Aç | Başlatıldı |
| 10220 | 2 | 28/07/2022 | 06/09/2022 | Yok | Aç | Başlatıldı |
| 10326 | 2 | 11/11/2022 | 05/12/2022 | Yok | Aç | Başlatıldı |
| 10138 | 2 | 07/05/2022 | 03/08/2022 | Yok | Aç | Başlatıldı |
| 10334 | 2 | 19/11/2022 | 06/02/2023 | Düşük | Aç | Başlatıldı |

Durum tablosundaki beşinci satır (Durum kimliği: "5", Durum: "Kapalı", Alt Durum: "Kullanımdan Kaldırılmış"), Değişiklikler tablosundaki kayıtların hiçbirine karşılık gelmediği için bu satırdaki bilgiler, yukarıdaki sonuç kümesinde görünmüyor.

Veri yükleme düzenleyicisine geri dönün. Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin: `Status`.

Şu hesaplamayı ekleyin:

`=Count([Change ID])`

Artık Değişiklik sayısını Status'a göre inceleyebilirsiniz.

Sonuçlar tablosu

| Durum | =Count([Change ID]) |
| --- | --- |
| Aç | 12 |
| Kapatıldı | 3 |

## Örnek 2 – İç birleştirme: Yalnızca eşleşen kayıtları bir araya getirme

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Changes` adlı bir tabloya yüklenen, değişim kayıtlarını temsil eden bir veri kümesi.

* `JIRA` kaynak sisteminden alınan değişim kayıtlarını temsil eden ikinci bir veri kümesi. Bu, yüklenip bir `Inner Join` yükleme ön ekiyle birleştirilerek asıl kayıtlarla bir araya getirilir.

Bu `Inner Join`, yalnızca her iki veri kümesinde de bulunan beş değişiklik kaydının tutulmasını sağlar.

Komut dosyası

```
Changes:
Load * inline [
Change ID	Status ID	Scheduled Start Date	Scheduled End Date	Business Impact
10030	4	19/01/2022	23/02/2022	None
10015	3	04/01/2022	15/02/2022	Low
10103	1	02/04/2022	29/05/2022	Medium
10185	2	23/06/2022	08/09/2022	None
10323	1	08/11/2022	26/11/2022	High
10326	2	11/11/2022	05/12/2022	None
10138	2	07/05/2022	03/08/2022	None
10031	3	20/01/2022	25/03/2022	Low
10040	1	29/01/2022	22/04/2022	None
10134	1	03/05/2022	08/07/2022	Low
10334	2	19/11/2022	06/02/2023	Low
10220	2	28/07/2022	06/09/2022	None
10264	1	10/09/2022	17/10/2022	Medium
10116	1	15/04/2022	24/04/2022	None
10187	2	25/06/2022	24/08/2022	Low
] (delimiter is '\t');

JIRA_changes:
Inner Join (Changes)
Load
  [Ticket ID] AS [Change ID],
  [Source System]
inline
[
Ticket ID	Source System
10000	JIRA					
10030	JIRA
10323	JIRA
10134	JIRA
10334	JIRA
10220	JIRA
20000	TFS
] (delimiter is '\t');
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `Source System`

* `Change ID`

* `Business Impact`

Artık ortaya çıkan beş kaydı inceleyebilirsiniz. `Inner Join` kaynağındaki bir sonuç tablosu, yalnızca her iki veri kümesindeki eşleşen bilgilerin yer aldığı kayıtları içerir.

Sonuçlar tablosu

| Kaynak Sistem | Change ID | İşe Etkisi |
| --- | --- | --- |
| JIRA | 10030 | Yok |
| JIRA | 10134 | Düşük |
| JIRA | 10220 | Yok |
| JIRA | 10323 | Yüksek |
| JIRA | 10334 | Düşük |

## Örnek 3 – Dış birleştirme: Örtüşen kayıt setlerini bir araya getirme

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Changes` adlı bir tabloya yüklenen, değişim kayıtlarını temsil eden bir veri kümesi.

* Yüklenip bir `Outer Join` yükleme ön ekiyle birleştirilerek asıl kayıtlarla bir araya getirilen `JIRA` kaynak sisteminden alınan değişim kayıtlarını temsil eden bir veri kümesi.

Bu, her iki veri kümesinde örtüşen tüm değişiklik kayıtlarının tutulmasını sağlar.

Komut dosyası

```
// 8 Change records

Changes:
Load * inline [
Change ID	Status ID	Scheduled Start Date	Scheduled End Date	Business Impact
10030	4	19/01/2022	23/02/2022	None
10015	3	04/01/2022	15/02/2022	Low
10138	2	07/05/2022	03/08/2022	None
10031	3	20/01/2022	25/03/2022	Low
10040	1	29/01/2022	22/04/2022	None
10134	1	03/05/2022	08/07/2022	Low
10334	2	19/11/2022	06/02/2023	Low
10220	2	28/07/2022	06/09/2022	None
] (delimiter is '\t');

// 6 Change records

JIRA_changes:
Outer Join (Changes)
Load
  [Ticket ID] AS [Change ID],
  [Source System]
inline
[
Ticket ID	Source System
10030	JIRA
10323	JIRA
10134	JIRA
10334	JIRA
10220	JIRA
10597	JIRA
] (delimiter is '\t');
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `Source System`

* `Change ID`

* `Business Impact`

Artık ortaya çıkan 10 kaydı inceleyebilirsiniz.

Sonuçlar tablosu

| Kaynak Sistem | Change ID | İşe Etkisi |
| --- | --- | --- |
| JIRA | 10030 | Yok |
| JIRA | 10134 | Düşük |
| JIRA | 10220 | Yok |
| JIRA | 10323 | - |
| JIRA | 10334 | Düşük |
| JIRA | 10597 | - |
| - | 10015 | Düşük |
| - | 10031 | Düşük |
| - | 10040 | Yok |
| - | 10138 | Yok |

## Örnek 4 – Sağ birleştirme: Hedef tabloyu ikincil bir ana veri kümesiyle kısaltma

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Changes adlı bir tabloya yüklenen, değişim kayıtlarını temsil eden bir veri kümesi.

* Kaynak sistem Teamwork öğesinden kaynaklanan değişiklik kayıtlarını temsil eden ikinci bir veri kümesi. Bu veri kümesi bir Right Join yük önekine bağlanarak orijinal kayıtlarla yüklenir ve birleştirilir.

Bu, hedef tabloda eşleşen bir Change ID yoksa herhangi bir Teamwork kaydını kaybetmeden Teamwork değişim kayıtlarının tutulmasını sağlar.

Komut dosyası

```
Changes:

Load * inline [
Change ID	Status ID	Scheduled Start Date	Scheduled End Date	Business Impact
10030	4	19/01/2022	23/02/2022	None
10015	3	04/01/2022	15/02/2022	Low
10103	1	02/04/2022	29/05/2022	Medium
10185	2	23/06/2022	08/09/2022	None
10323	1	08/11/2022	26/11/2022	High
10326	2	11/11/2022	05/12/2022	None
10138	2	07/05/2022	03/08/2022	None
10031	3	20/01/2022	25/03/2022	Low
10040	1	29/01/2022	22/04/2022	None
10134	1	03/05/2022	08/07/2022	Low
10334	2	19/11/2022	06/02/2023	Low
10220	2	28/07/2022	06/09/2022	None
10264	1	10/09/2022	17/10/2022	Medium
10116	1	15/04/2022	24/04/2022	None
10187	2	25/06/2022	24/08/2022	Low
] (delimiter is '\t');

Teamwork_changes:
Right Join (Changes)
Load
  [Ticket ID] AS [Change ID],
  [Source System]
inline
[
Ticket ID	Source System
10040	Teamwork
10015	Teamwork
10103	Teamwork
10031	Teamwork
50231	Teamwork
] (delimiter is '\t');
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* Source System

* Change ID

* Business Impact

Artık ortaya çıkan beş kaydı inceleyebilirsiniz.

Sonuçlar tablosu

| Kaynak Sistem | Change ID | İşe Etkisi |
| --- | --- | --- |
| Ekip Çalışması | 10015 | Düşük |
| Ekip Çalışması | 10031 | Düşük |
| Ekip Çalışması | 10040 | Yok |
| Ekip Çalışması | 10103 | Orta |
| Ekip Çalışması | 50231 | - |

## Daha fazla bilgi

* [Load](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Inner](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Inner.htm)
* [Outer](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Outer.htm)
* [Left](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Left.htm)
* [Right](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Right.htm)
* [Keep](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm)
* [Join ve Keep ile tabloları birleştirme](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm)