# Join

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

Verileri birleştirmenin etkisi, hedef tabloyu hedef tabloda halihazırda bulunmayan ek bir alanlar veya öznitelikler kümesiyle genişletmektir. Kaynak veri kümesi ile hedef tablo arasındaki ortak alan adları, yeni gelen kayıtların nasıl ilişkilendirileceğini bulmak için kullanılır. Buna genellikle "doğal birleştirme" (natural join) 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 tablonun başlangıçtakinden daha fazla veya daha az kayda sahip olmasına yol açabilir.

[Join script prefix](https://play.vidyard.com/7xrdzssVH99Jsr8gmPunCC)

## Birleştirme türleri

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

* Left join

* Inner join

* Outer join

* Right join

Farklı türdeki birleştirme işlemlerinden örnek sonuç kümeleri

Farklı türdeki birleştirme işlemlerinden örnek sonuç kümeleri

Farklı türdeki birleştirme işlemlerinden örnek sonuç kümeleri ![Farklı türdeki birleştirme işlemlerinden örnek sonuç kümeleri ve her işlemden sonra veri tablolarının öncesi ve sonrası gösterimi. Girdiler bir hedef tablo ve gelen bir veri kümesinden oluşur. Hedef tablonun 'Trade ID' ve 'Asset Class' alanları için iki satır girişine sahip iki sütunu vardır. Gelen verilerin 'Trade ID' ve 'Exchange' alanları için iki satır girişine sahip iki sütunu vardır. Left Join, ilk hedef tabloyu tutar ve 'Exchange' satır girişlerinden birinin eklenmesi dışında her şeyin boş olduğu üçüncü bir sütun ekler. Inner Join, bir Trade ID satırı ve yine 'Exchange' satır girişi için üçüncü bir sütun içeren bir tablo oluşturur. Outer Join, hedef tabloyu tutar ve gelen veri kümesinin ikinci satırının eklendiği üçüncü bir satır boyunca üçüncü bir sütun ekler. Right Join, hedef tablonun ikinci satır girişini kaldırır ve bunu gelen veri kümesinin ikinci satır girişinden gelen bilgilerle değiştirerek bu süreçte üçüncü bir sütun ekler.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-join-examples-operations.png)

### Left join

Left join işlemleri 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ştirmek istiyorsanız, genellikle bir `Left Join` kullanırsınız. Önce işlem tablosunu yükler, ardından referans veri kümesini yüklerken bir `Left Join` öneki aracılığıyla halihazırda yüklenmiş olan işlem tablosuna birleştirirsiniz. Bir `Left Join`, tüm işlemleri olduğu gibi tutar ve bir eşleşme bulunduğunda tamamlayıcı referans veri alanlarını ekler.

Left join

Left join

Left join ![Bir left join sırasında meydana gelen veri kombinasyonlarını üst düzeyde özetleyen diyagram.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/join-types-scripting_left.png)

### Inner join

Yalnızca eşleşen bir ilişkinin olduğu sonuçları önemsediğiniz iki veri kümeniz olduğunda, bir `Inner Join` kullanmayı düşünün. Bu, hiçbir eşleşme bulunmazsa hem yüklenen kaynak verilerden hem de hedef tablodan tüm kayıtları ortadan kaldıracaktır. Sonuç olarak bu, hedef tablonuzu birleştirme işlemi gerçekleşmeden öncesine göre daha az kayıtla bırakabilir.

Inner join

Inner join

Inner join ![Bir inner join sırasında meydana gelen veri kombinasyonlarını üst düzeyde özetleyen diyagram.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/join-types-scripting_inner.png)

### Outer join (varsayılan)

Hem hedef kayıtları hem de gelen kayıtların tümünü tutmanız gerektiğinde, bir `Outer Join` kullanın. Eşleşme bulunmayan yerlerde, her bir kayıt kümesi tutulmaya devam ederken birleştirmenin karşı tarafındaki alanlar doldurulmamış (boş) kalacaktır.

Tür anahtar sözcüğü atlanırsa, varsayılan birleştirme türü outer join olur.

Outer join

Outer join

Outer join ![Bir outer join sırasında meydana gelen veri kombinasyonlarını üst düzeyde özetleyen diyagram.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/join-types-scripting_outer.png)

### Right join

Bu birleştirme türü, yüklenecek tüm kayıtları tutarken, birleştirme tarafından hedeflenen tablodaki kayıtları yalnızca gelen kayıtlarda bir ilişkilendirme eşleşmesinin olduğu kayıtlara indirger. Bu, bazen önceden yüklenmiş bir kayıt tablosunu gerekli bir alt kümeye kırpmak için bir araç olarak kullanılan niş bir birleştirme türüdür.

Right join

Right join

Right join ![Bir right join sırasında meydana gelen veri kombinasyonlarını üst düzeyde özetleyen diyagram.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/join-types-scripting_right.png)

### Cross join

Bilgi notuBir birleştirme işleminin kaynağı ile hedefi arasında ortak hiçbir alan adı yoksa, birleştirme tüm satırların kartezyen çarpımıyla sonuçlanacaktır; buna "cross join" (çapraz birleştirme) denir.

Bir "cross join" işleminden örnek sonuç kümesi

Bir "cross join" işleminden örnek sonuç kümesi

Bir "cross join" işleminden örnek sonuç kümesi ![Bir cross join işleminden (herhangi bir türde birleştirme işlemi içerebilir) sonra girdi verilerinin çıktıyla öncesi ve sonrası karşılaştırması. Girdiler bir hedef tablo ve gelen bir veri kümesidir. Hedef tablo, iki satır girişine sahip üç sütundan oluşur. Sütunlar 'Trade ID', 'Base Currency' ve 'Amount' şeklindedir. Gelen veri kümesinin iki sütunu ('Trade Currency' ve 'Rate') ve iki satır girişi vardır. Ortaya çıkan tablonun 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' ve 'Rate' olmak üzere beş sütunu vardır. Tüm verileri birleştiren dört satır girişi vardır. Her 'Trade ID' girişinin diğer alanlarda farklı verilere sahip iki satırı vardır.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-examples-join-no-common-fields.png)

## Sözdizimi ve bağımsız değişkenler

[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. |

## İlgili konular

Bu konular bu işlevle çalışmanıza yardımcı olabilir:

İlgili konular

| Konu | Açıklama |
| --- | --- |
| [Join ve Keep ile tabloları birleştirme](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm) | Bu konu, veri kümelerini "birleştirme" (joining) ve "tutma" (keeping) kavramlarının daha fazla açıklamasını sağlar. |
| [Keep](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm) | `Keep` yükleme öneki, `Join` önekine benzer, ancak kaynak ve hedef veri kümelerini birleştirmez. Bunun yerine, benimsenen işlem türüne (inner, outer, left veya right) göre her bir veri kümesini kırpar. |

## Komut dosyası örnekleri - Left join

Bir left join, ana (hedef) tablonuzdaki tüm kayıtları tutar ve ikinci bir (kaynak) tablodan eşleşen verileri ekler. Kaynakta eşleşme yoksa, ana tablonun kaydı yine de görünür, ancak kaynak tablodan gelen alanlar boş olur.

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

#### Left join: temel örnek

Örnek komut dosyasını uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.

Komut dosyası

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Left Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ]; 
```

Satır içi yüklemeleri kullanma hakkında daha fazla bilgi için bkz. [Veri yüklemek için satır içi yüklemeler kullanma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Sonuçlar

Sonuç tablosu

| Column1 | Column2 | Column3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |

Bu örnek, yalnızca ilk (sol) tabloda bulunan değerlerin birleştirildiği Left Join çıktısını gösterir.

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

#### Left join örneği: Siparişleri müşteri bilgileriyle zenginleştirme

Genel Bakış

Bir sipariş listeniz olduğunu, ancak tüm siparişlerin eşleşen bir müşteri kaydına sahip olmadığını varsayalım.

Komut dosyası

```
Orders:
Load * inline [
OrderID, CustomerID, Amount
1, 101, 200
2, 102, 150
3, 104, 400
];

Customers:
Left Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Sonuçlar

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki tablonun önizlemesi

| OrderID | CustomerID | Amount | Name |
| --- | --- | --- | --- |
| 1 | 101 | 200 | Alice |
| 2 | 102 | 150 | Bob |
| 3 | 104 | 400 | - |

OrderID 1 ve 2'nin eşleşen müşterileri var. OrderID 3'ün eşleşen bir müşterisi yok, bu nedenle Name boş.

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

#### Left join örneği: Bir hedef tabloyu bir referans veri kümesiyle zenginleştirme

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:

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

* Değişiklik durumlarını temsil eden, yüklenen ve bir sol `Join` yükleme önekiyle birleştirilerek orijinal değişiklik kayıtlarıyla birleştirilen ikinci bir veri kümesi.

Bu left join, ortak bir Status ID'ye dayalı olarak gelen durum kayıtlarında bir eşleşme bulunduğunda durum özniteliklerini eklerken değişiklik kayıtlarının bozulmadan kalması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');

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 denormalize tablo mevcuttur. Bu, eşleşen durum özniteliklerinin her bir değişiklik kaydına birleştirildiği tüm orijinal değişiklik kayıtlarının bir kombinasyonudur.

Ortaya çıkan dahili veri modeli

| Changes |
| --- |
| Change ID |
| Status ID |
| Scheduled Start Date |
| Scheduled End Date |
| Business Impact |
| Status |
| Sub Status |

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, bu tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki Changes tablosunun önizlemesi

| Change ID | Status ID | Scheduled Start Date | Scheduled End Date | Business Impact | Status | Sub Status |
| --- | --- | --- | --- | --- | --- | --- |
| 10030 | 4 | 19/01/2022 | 23/02/2022 | None | Closed | Cancelled |
| 10031 | 3 | 20/01/2022 | 25/03/2022 | Low | Closed | Completed |
| 10015 | 3 | 04/01/2022 | 15/02/2022 | Low | Closed | Completed |
| 10103 | 1 | 02/04/2022 | 29/05/2022 | Medium | Open | Not Started |
| 10116 | 1 | 15/04/2022 | 24/04/2022 | None | Open | Not Started |
| 10134 | 1 | 03/05/2022 | 08/07/2022 | Low | Open | Not Started |
| 10264 | 1 | 10/09/2022 | 17/10/2022 | Medium | Open | Not Started |
| 10040 | 1 | 29/01/2022 | 22/04/2022 | None | Open | Not Started |
| 10323 | 1 | 08/11/2022 | 26/11/2022 | High | Open | Not Started |
| 10187 | 2 | 25/06/2022 | 24/08/2022 | Low | Open | Started |
| 10185 | 2 | 23/06/2022 | 08/09/2022 | None | Open | Started |
| 10220 | 2 | 28/07/2022 | 06/09/2022 | None | Open | Started |
| 10326 | 2 | 11/11/2022 | 05/12/2022 | None | Open | Started |
| 10138 | 2 | 07/05/2022 | 03/08/2022 | None | Open | Started |
| 10334 | 2 | 19/11/2022 | 06/02/2023 | Low | Open | Started |

Status tablosundaki beşinci satır (Status ID: '5', Status: 'Closed', Sub Status: 'Obsolete') Changes tablosundaki kayıtların hiçbirine karşılık gelmediğinden, bu satırdaki bilgiler yukarıdaki sonuç kümesinde görünmez.

Veri yükleme düzenleyicisi'ne 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 Duruma göre Değişiklik sayısını inceleyebilirsiniz.

Sonuçlar tablosu

| Status | =Count([Change ID]) |
| --- | --- |
| Open | 12 |
| Closed | 3 |

## Komut dosyası örnekleri - Inner join

Bir inner join, yalnızca her iki tabloda da bulunan kayıtları (eşleşen alan değerlerine göre) tutar.

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

#### Inner join: temel örnek

Komut dosyası

Örnek komut dosyasını uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Inner Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ];
```

Satır içi yüklemeleri kullanma hakkında daha fazla bilgi için bkz. [Veri yüklemek için satır içi yüklemeler kullanma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Sonuçlar

Sonuç tablosu

| Column1 | Column2 | Column3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |

Bu örnek, yalnızca hem ilk (sol) hem de ikinci (sağ) tablolarda bulunan değerlerin birleştirildiği Inner Join çıktısını gösterir.

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

#### Inner join örneği: Siparişleri yalnızca gönderilenlere indirgeme

Genel Bakış

Siparişleriniz ve gönderilen siparişlerin bir listesi var. Yalnızca gönderilmiş olan siparişleri istiyorsunuz.

Komut dosyası

```
Orders:
Load * inline [
OrderID, Amount
1, 200
2, 150
3, 400
];

Shipped:
Inner Join (Orders)
Load * inline [
OrderID, ShipDate
2, 2022-05-01
3, 2022-05-02
4, 2022-05-03
];
```

Sonuçlar

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki tablonun önizlemesi

| OrderID | Amount | ShipDate |
| --- | --- | --- |
| 2 | 150 | 2022-05-01 |
| 3 | 400 | 2022-05-02 |

Yalnızca OrderID 2 ve 3 görünür, çünkü her iki tabloda da mevcutturlar.

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

#### Inner join örneği: Yalnızca eşleşen kayıtları birleştirme

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:

* Değişiklik kayıtlarını temsil eden ve Changes adlı bir tabloya yüklenen bir veri kümesi.

* JIRA kaynak sisteminden gelen değişiklik kayıtlarını temsil eden ikinci bir veri kümesi. Bu, yüklenir ve bir Inner Join yükleme önekiyle birleştirilerek orijinal kayıtlarla birleştirilir.

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. Bir Inner Join işleminden elde edilen tablo, yalnızca her iki veri kümesinde de eşleşen bilgilere sahip kayıtları içerecektir.

Sonuçlar tablosu

| Source System | Change ID | Business Impact |
| --- | --- | --- |
| JIRA | 10030 | None |
| JIRA | 10134 | Low |
| JIRA | 10220 | None |
| JIRA | 10323 | High |
| JIRA | 10334 | Low |

## Komut dosyası örnekleri - Outer join

Bir outer join, her iki tablodaki tüm kayıtları tutar. Eşleşme olmayan yerlerde alanlar boş bırakılır.

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

#### Outer join: Temel örnek

Komut dosyası

Örnek komut dosyasını uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Outer Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ]; 
```

Satır içi yüklemeleri kullanma hakkında daha fazla bilgi için bkz. [Veri yüklemek için satır içi yüklemeler kullanma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Sonuçlar

Sonuç tablosu

| Column1 | Column2 | Column3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |
| 4 | - | yy |

Bu örnekte, Table1 ve Table2 adlı iki tablo, Table1 etiketli tek bir tabloda birleştirilir. Bunun gibi durumlarda, outer öneki genellikle tek bir tablonun değerleri üzerinde toplamalar gerçekleştirmek üzere birkaç tabloyu tek bir tabloda birleştirmek için kullanılır.

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

#### Outer join: Tüm müşterilerin ve siparişlerin tam bir listesini oluşturma

Genel Bakış

Bazı müşterilerin siparişi olmasa ve bazı siparişlerin müşteri kaydı olmasa bile, tüm müşterilerin ve siparişlerin tam bir listesini istiyorsunuz.

Komut dosyası

```
Orders:
Load * inline [
OrderID, CustomerID
1, 101
2, 102
3, 104
];

Customers:
Outer Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Sonuçlar

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, bu tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki tablonun önizlemesi

| OrderID | CustomerID | Name |
| --- | --- | --- |
| 1 | 101 | Alice |
| 2 | 102 | Bob |
| 3 | 104 | - |
| - | 103 | Carol |

OrderID 3'ün eşleşen bir müşterisi yok (Name boş).

CustomerID 103'ün (Carol) eşleşen bir siparişi yok (OrderID boş).

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

#### Outer join: Örtüşen kayıt kümelerini birleştirme

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:

* Değişiklik kayıtlarını temsil eden ve Changes adlı bir tabloya yüklenen bir veri kümesi.

* JIRA kaynak sisteminden gelen değişiklik kayıtlarını temsil eden, yüklenen ve bir Outer Join yükleme önekiyle birleştirilerek orijinal kayıtlarla birleştirilen ikinci bir veri kümesi.

Bu, her iki veri kümesindeki tüm örtüşen 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

| Source System | Change ID | Business Impact |
| --- | --- | --- |
| JIRA | 10030 | None |
| JIRA | 10134 | Low |
| JIRA | 10220 | None |
| JIRA | 10323 | - |
| JIRA | 10334 | Low |
| JIRA | 10597 | - |
| - | 10015 | Low |
| - | 10031 | Low |
| - | 10040 | None |
| - | 10138 | None |

## Komut dosyası örnekleri - Right join

Bir right join, kaynak tablodaki tüm kayıtları tutar ve hedef tablodan eşleşen bilgileri ekler. Hedef tabloda eşleşme yoksa, ondan gelen alanlar boş olur.

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

#### Right join: temel örnek

Komut dosyası

Örnek komut dosyasını uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Right Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ];
```

Satır içi yüklemeleri kullanma hakkında daha fazla bilgi için bkz. [Veri yüklemek için satır içi yüklemeler kullanma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Sonuç

Sonuç tablosu

| Column1 | Column2 | Column3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 4 | - | yy |

Bu örnek, yalnızca ikinci (sağ) tabloda bulunan değerlerin birleştirildiği Right Join çıktısını gösterir.

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

#### Right join örneği: tüm müşterileri eşleşen siparişlerle birleştirme

Genel Bakış

Kaynak tablonuz bir müşteri listesidir; tüm müşterileri ve eşleşen siparişleri istiyorsunuz.

Komut dosyası

```
Orders:
Load * inline [
OrderID, CustomerID
1, 101
2, 102
3, 104
];

Customers:
Right Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Sonuçlar

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, bu tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki tablonun önizlemesi

| CustomerID | Name | OrderID |
| --- | --- | --- |
| 101 | Alice | 1 |
| 102 | Bob | 2 |
| 103 | Carol | - |

Tüm müşteriler görünür. Carol'ın siparişi yok (OrderID boş).

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

#### Right join örneği: bir hedef tabloyu ikincil bir ana veri kümesiyle kırpma

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:

* Değişiklik kayıtlarını temsil eden ve Changes adlı bir tabloya yüklenen bir veri kü.

* Teamwork kaynak sisteminden gelen değişiklik kayıtlarını temsil eden ikinci bir veri kümesi. Bu, yüklenir ve bir Right Join yükleme önekiyle birleştirilerek orijinal kayıtlarla birleştirilir.

Bu, yalnızca Teamwork değişiklik kayıtlarının tutulmasını sağlarken, hedef tabloda eşleşen bir Change ID yoksa hiçbir Teamwork kaydının kaybolmaması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

| Source System | Change ID | Business Impact |
| --- | --- | --- |
| Teamwork | 10015 | Low |
| Teamwork | 10031 | Low |
| Teamwork | 10040 | None |
| Teamwork | 10103 | Medium |
| Teamwork | 50231 | - |

## Sorun Giderme - Cross join

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

#### Sorun giderme komut dosyası örneği: ortak alan adı yok

Genel Bakış

Eşleşen alan adları olmayan iki tabloyu birleştirirseniz, ilk tablodaki her satır ikinci tablodaki her satırla birleştirilir; bu da potansiyel olarak çok sayıda kayıt (kartezyen çarpım) üretir ve beklenmeyen veri ilişkilendirmelerine yol açar.

Komut dosyası

```
TableA:
Load * inline [
A_ID, ValueA
1, foo
2, bar
];

TableB:
Join (TableA)
Load * inline [
B_ID, ValueB
10, baz
11, qux
];
```

Sonuçlar

Veri modeli görüntüleyicisinde önizleme penceresini genişletirseniz, bu tam sonuç kümesinin bir tablo halinde düzenlenmiş bir bölümünü göreceksiniz:

Veri modeli görüntüleyicisindeki tablonun önizlemesi

| A\_ID | ValueA | B\_ID | ValueB |
| --- | --- | --- | --- |
| 1 | foo | 10 | baz |
| 1 | foo | 11 | qux |
| 2 | bar | 10 | baz |
| 2 | bar | 11 | qux |

Her A\_ID, her B\_ID ile eşleştirilir (toplam 4 satır).

İpucu notuBir birleştirme çalıştırmadan önce her zaman alan adlarınızın amaçlandığı gibi eşleştiğini kontrol edin.

[Load](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)

[Select](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)

[Inner](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Inner.htm)

[Outer](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Outer.htm)

[Left](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Left.htm)

[Right](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Right.htm)

[Keep](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm)

[Join ve Keep ile tabloları birleştirme](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm)