# Korzystanie z funkcji mapowania jako alternatywy dla funkcji sprzężenia

Prefiks Join w aplikacji Qlik Sense to wydajny sposób łączenia kilku tabel danych w model danych.

Jedyna wada polega na tym, że połączone tabele mogą stać się duże i spowalniać pracę. Alternatywą wobec prefiksu Join w sytuacjach, gdy wykonuje się wyszukiwanie wartości pojedynczej w innej tabeli, jest użycie mapowania. Pozwala to uniknąć ładowania niepotrzebnych danych, które spowalniają obliczenia i mogą spowodować błędy w obliczeniach, ponieważ sprzężenia zmieniają niekiedy liczbę rekordów w tabelach.

Tabela mapowania składa się z dwóch kolumn: pola porównania (wejściowego) i pola wartości mapowania (wyjściowego).

Na tym przykładzie mamy tabelę zamówień (Orders) i chcemy znać kraje klientów, którzy jest zapisani w tabeli klientów (Customers).

Tabela danych OrdersOrders.

| OrderID | DataZamówienia | IdSpedytora | Fracht | IdKlienta |
| --- | --- | --- | --- | --- |
| 12987 | 2007-12-01 | 1 | 27 | 3 |
| 12988 | 2007-12-01 | 1 | 65 | 4 |
| 12989 | 2007-12-02 | 2 | 32 | 2 |
| 12990 | 2007-12-03 | 1 | 76 | 3 |

Tabela danych CustomersCustomers.

| CustomerID | Nazwa | Kraj | ... |
| --- | --- | --- | --- |
| 1 | Dane sprzedaży | Hiszpania | ... |
| 2 | Korporacja Biznesowa | Włochy | ... |
| 3 | TechCo | Niemcy | ... |
| 4 | Mobecho | Francja | ... |

Aby wyszukać kraj (Country) klienta, potrzebujemy tabeli mapowania, która wygląda następująco:

Tabela mapowania

| CustomerID | Kraj |
| --- | --- |
| 1 | Hiszpania |
| 2 | Włochy |
| 3 | Niemcy |
| 4 | Francja |

Tabela mapowania, którą nazwiemy MapCustomerIDtoCountry, jest określana w skrypcie w następujący sposób:

```
     MapCustomerIDtoCountry:
     Mapping LOAD CustomerID, Country From Customers ;
     
```

Następnym krokiem jest zastosowanie mapowania przy użyciu funkcji ApplyMap podczas ładowania tabeli z zamówieniami:

```
Orders:
     LOAD *,
          ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country
          From Orders ;
     
```

Trzeci parametr funkcji ApplyMap służy do definiowania, co ma być zwracane, gdy wartość nie zostanie znaleziona w tabeli mapowania (w tym przypadku Null()).

Otrzymana tabela będzie wyglądać następująco:

Tabela wynikowa

| OrderID | Data zamówienia | ShipperID | Fracht | CustomerID | Kraj |
| --- | --- | --- | --- | --- | --- |
| 12987 | 2007-12-01 | 1 | 27 | 3 | Niemcy |
| 12988 | 2007-12-01 | 1 | 65 | 4 | Francja |
| 12989 | 2007-12-02 | 2 | 32 | 2 | Włochy |
| 12990 | 2007-12-03 | 1 | 76 | 3 | Niemcy |

## Dowiedz się więcej

* [ApplyMap Funkcja skryptu](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/MappingFunctions/ApplyMap.htm)
* [Mapowanie](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Mapping.htm)